﻿/**
Name		: ecardUtil.js
Description : www.ogplanet.com/Community/E-card 
			  E-Card 발송과 관련된 자바스크립트			  
			  1. E-Card print 관련 함수 
			  2. 선택된 E-Card 모드별 정보 표시
			   - view, write, print(read)
CreateDate	: 03/24/2009 
Creator     : Kang 
UpdateDate 	:	
**/	
		/**
			jPrintAreaOGP는 jQuery를 이용해서 만들어진 jPrintArea를 OGP에 적당히 수정한 함수 
		**/
		jQuery.jPrintAreaOGP = function(el) 
		{ 						
			var left = (screen.availWidth - 800) / 2;
			var top = (screen.availHeight - $(el).height()) / 2;
		
			//
			var frog = window.open("","wildebeast","width=800,height="+$(el).height()+",scrollbars=1,resizable=1, left="+left+",top="+top);
			
			var doc = null;
			//
			frog.document.open();
			
			doc = frog.document;
			var links = window.document.getElementsByTagName('link');
		
			var printCSS = ($(el).attr('rel') != undefined) ? $(el).attr('rel') : $(el).attr('class');
			
			for(var i=0; i < links.length; i++) {
				if(links[i].rel.toLowerCase() == 'stylesheet' ) { 
					doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'" ></link>');
				}
			}
							
			doc.write('<div >'+$(el).html()+'</div>');												
			doc.close();
			
			$(doc).find('body').css('background','#fff');
			//$(doc).find('.'+$(el).attr('class')).attr('class',printCSS);						
		
			if ($.browser.msie && jQuery.browser.version == "6.0"){
				//don't print if IE6.. it doesn't work anyways :(
				//alert("Sorry, your browser doesn't seem to auto-print (Internet Explorer 6). Try using other browsers to print. Thank you!");
			}else{
				//frog.print();
			}
			
			//alert('Printing...'); thanks alex 
			function pausecomp(millis)
			{
				var date = new Date();
				var curDate = null;
		
				do { curDate = new Date(); }
				while(curDate - date < millis);
			}
			 
			pausecomp(1000);
		}

		/**
			선택된 E-Card 의 정보 관련 함수
		**/
		ECard = {
			// current selected E-Card ID
			ecardId : "",				
			
			setEcardID:function(ecardID) {
				ECard.ecardId = ecardID;
			},
		
			printEcard:function(id, message, printDiv, mode) {
				document.getElementById(id).innerHTML = ECard.showFlashObjectECard(ECard.ecardId, mode, message);
				jQuery.jPrintAreaOGP(printDiv);
			},
		
			/**
			사용중인 브라우저 별로 flash object 생성 script 생성 
			**/
			showFlashObjectECard:function(__ecardId, mode, message, id) {
				swfURL = 'http://static.ogplanet.com/static/Main_v2/images/community/ecard/swf/Main.swf?';				
				    // 모드별로 알맞은 url를 설정  
					switch(mode){
						default:
						case 'write':
							swfURL += 'mode=write&XMLUrl=http://www.ogplanet.com/ecard/preview/'+ __ecardId +'.og"';
							break;
						case 'print':
							swfURL += 'mode=print&XMLUrl=http://www.ogplanet.com/ecard/preview/'+ __ecardId +'.og&message='+encodeURIComponent(message)+'"';
							break;
						case 'read':
							swfURL += 'mode=print&XMLUrl=http://www.ogplanet.com/ecard/xml/'+ __ecardId +'.og"';
							break;							
						case 'view':
							swfURL += 'mode=view&XMLUrl=http://www.ogplanet.com/ecard/xml/'+ __ecardId +'.og"';
					}
					
					var flash ;
					if(!jQuery.browser.mozilla) {							
						flash = '<object id="cardMessage" height="400" width="300" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"'
						flash += 'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">'
						flash += '<param name="movie" value="'+swfURL+'"/>'
						flash += '<param name="allowScriptAccess" value="always"/>'
						flash += '<param name="menu" value="false"/>'
						flash += '<param name="quality" value="high"/>'						
						flash += '<param name="wmode" value="transparent"/>' 
						flash += '<embed height="400" align="middle" width="300" src="'+swfURL+'"'
						flash += 'allowscriptaccess="always" menu="false" quality="high" bgcolor="#fff" wmode="transparent"  type="application/x-shockwave-flash"'
						flash += 'pluginspage="http://www.macromedia.com/go/getflashplayer"/></object>'	
					} else {
						flash = '<embed id="cardMessage" wmode="transparent"  height="400" width="300" src="'+swfURL+'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed>'
					}
					
					// id가 null 이 아닌 경우엔 innner html에 밀어 넣는다.  
					if(id != null) {						
						document.getElementById(id).innerHTML = flash;
					}
					
					// 현재 선택된 flash 정보를 설정한다.									
					ECard.ecardId = __ecardId;
					
					// flash object를 return 
					return flash;
				}
			}
