function init(pageId)
{
	// load contents first to shorten waiting
	var now = new Date();
	if (pageId=='0' || pageId=='1') {
		//if it's come from facebook
		if (typeof(sid) != "undefined" && sid != "")
			open_sharer(sid, sw, sh, opt, kind);
//		if (document.getElementById('email').value != '')
			addJobModule(pageId);
//		else {
//			location.href = "index.html";
//			pageId= 'HOMEP';
//		}
	} else if (pageId !='WBUPD')
		document.getElementById(pageId).style.borderBottom="1px dashed white";
	if (pageId =='CALDIY')
		loadTempInfo("D2601");
	//document.getElementById(pageId).style.textDecoration="overline underline";
	//var url="../webupload/chkuid.jsp"; // turn off debug
	if (window.location.href.indexOf('#') < 0)	// skip if bookmark
		document.getElementById('email').focus();
	var url="../webupload/chkuid.jsp?id="+pageId+"&tm="+now.valueOf();
	Spry.Utils.loadURL("GET", url, false, processUID);
	if (typeof(appType) != "undefined" && pageId !="CALDIY") {	// && pageId !='WBUPD')) {
		url="../data/"+appType+".xml?ver="+lastMod;
		Spry.Utils.loadURL("GET", url, false, processXML);
	}
	if (typeof(loadBlog) != "undefined") {	
		var url="../webupload/getbloginfo.jsp?tm="+now.getMonth()+"-"+now.getDate();
		Spry.Utils.loadURL("GET", url, false, blogLoader);
	}
	return;
}

function blogLoader(req)
{
	var respTxt = trim(req.xhRequest.responseText);
	document.getElementById("blog_cont").innerHTML = respTxt;
}

function addJobModule(pid)
{
	// force to refresh
	var url="../webupload/";
	var opt = "?tm="+new Date().valueOf();
	if (pid == '0') {
		url += "myJobs.jsp";
		url += opt;
	} else {
		url += "share.jsp";
		url += opt;
		url += "&kind="+kind;
	}
	Spry.Utils.updateContent('dynamic_cont', url);
}

function loadTempInfo(id)
{
	document.getElementById(id).style.backgroundColor = "#FF00FF";	//set new
	if (srcId != id) {	// not the same one
		if (srcId.length != 0)
			document.getElementById(srcId).style.backgroundColor = "";	//restore old
		srcId = id;	// set global value in calendar_diy.html
		var url="../ecapp/getTempInfo.jsp?id="+id;
		var req = Spry.Utils.loadURL("GET", url, false, showTemplate);
		// show selection
		var tabsArray = TabbedPanels2.getTabs();
		var curIndex = TabbedPanels2.getCurrentTabIndex();
		var tabButton = tabsArray[curIndex];
		document.getElementById("currSel").innerHTML = tabButton.innerHTML +"/" + document.getElementById(id).innerHTML;
	}
	//Spry.Utils.updateContent('template_info', url);
}

function showTemplate(req)
{
	var respTxt = trim(req.xhRequest.responseText);
	document.getElementById("template_info").innerHTML = respTxt;
}

function startFlash()
{
	var email=trim(document.getElementById('myemail').value);
	var admAttr=document.getElementById("admFlag").style.display;
	
	if (email=='') {
		alert("請先輸入EMail帳號");
		document.getElementById('myemail').focus();
		return false;
	} else {
		var url="../editor/editor.html?mid="+email+"&pid="+srcId;
		if (admAttr=='inline')
			url += "&adm=true";
		document.location = url;
	}
}

function loadMyJob()
{
	// must enter
	var email=trim(document.getElementById('email').value);
	if (email=='') {
		alert("請先輸入EMail帳號");
		return false;
	}
	var url="../webupload/getUserid.jsp?mailId="+email+"&tm="+new Date().valueOf();
	var req = Spry.Utils.loadURL("GET", url, false, processUsrID);
	return true;
}

function FadeAndUpdateContent(ele, url)
{
	try {
		Spry.Effect.DoFade(ele,{ duration: 500, from: 100, to: 0, finish: function() {
			Spry.Utils.updateContent(ele, url, function() {
					Spry.Effect.DoFade(ele,{ duration: 500, from: 0, to: 100 });
			});
		}});
	}catch(e){
		alert(e);
	}
}

// Removes leading whitespaces
function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}
function isValidEmail() {

	var email=document.getElementById('email').value
 	var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
 	if (re.test(email)) {
		return true;
	}
 	else {
 		alert("請輸入有效的電子信箱帳號!!!") 
		document.getElementById('email').focus(); 
		return false; 
	 }
}

function selectAll(type_name)
{
	document.getElementById(type_name).select();
}

function email_validation(type_name, str) 
{
	var email_validation = true;
	var temp = document.getElementById(type_name).value;
	var at = temp.indexOf('@');
	var prd = temp.lastIndexOf('.');
	var space = temp.indexOf(' ');
	var length = temp.length - 1;
	if (length==-1)
		return false;

	if ((at < 1) || (prd <= at+1) ||  (prd == length ) ||  (space  != -1)) {  
		email_validation = false;
		alert(str);
		//temp.focus();
		document.getElementById(type_name).focus();
	}
	return email_validation;
}

function processUID(req)
{
	var respTxt = trim(req.xhRequest.responseText);
	var outstr = respTxt.split("&");
	document.getElementById('email').value=outstr[0];
	if (typeof(appType) != "undefined" || pageId =='WBUPD') {
		document.getElementById('myemail').value=outstr[0];
		if (document.getElementById('admFlag') != null && outstr[2].length>0 ) {
			document.getElementById("admFlag").style.display="inline";
			document.getElementById('admFlag').value=outstr[2];
		}
		if (document.getElementById('myphone') != null) {
			if (pageId =='WBUPD') {
				var temp = outstr[1].split("*");
				var ext = "";
				document.getElementById('myphone').value=temp[0];
				if (temp.length == 2)
					ext = temp[1];
				document.getElementById('extension').value=ext;
			} else
				document.getElementById('myphone').value=outstr[1];
		}
		if (document.getElementById('mymobile') != null)
			document.getElementById('mymobile').value=outstr[3];
	}
}

function processUsrID(req)
{
	var respTxt = trim(req.xhRequest.responseText);
	if (respTxt.indexOf("error") != -1)
		alert("EMail帳號錯誤，無法上傳");
}

function processXML(req)
{
	var doc = req.xhRequest.responseXML;
	if (!doc || !doc.firstChild)
	{
		doc = Spry.Utils.stringToXMLDoc(req.xhRequest.responseText);
		if (!doc || !doc.firstChild)
		{
			alert("XML資料錯誤!");
			return;
		}
	}
	xmlobj = Spry.XML.documentToObject(doc);
	if (xmlobj && xmlobj.product)
	{
		prForm = document.price;
		gUnitName = xmlobj.product["@unit"];	// set label
		document.getElementById("quanUnit").innerHTML = gUnitName;
		
		var priceOrder = xmlobj.product.option["@priceOrder"];
		prField = new Array();	// init. to 0, otherwise undefined
		if (priceOrder != null) { // not defined
			if (priceOrder.length != 0)
				prField = priceOrder.split("-");
		}
		var optOrder = xmlobj.product.option["@optOrder"];
		optField = new Array();	// init. to 0, otherwise undefined
		if (optOrder != null) {	// not defined
			if (optOrder.length != 0)
				optField = optOrder.split("-");
		}

		gCategory = xmlobj.product["@cat"];
		gProdId = xmlobj.product["@id"];
		if (xmlobj.product.quantity["@count"] == xmlobj.product.quantity.quan.length) {
			//changeOptions();
			if (gCategory == "booklet") {
				changePages('insBkPages');
				changePages('insCrPages');
			}
			else {
				// set paperSel in advance to refresh the options
				if (gProdId.toLowerCase()=="envelope")
					getPaperSel("sizeSel","paperSel");
				if (gCategory.toLowerCase()=="sticker")
					setStickList(0);
					
				// get image list, size list, paper list from xml
				if (gCategory.toLowerCase()=="certificate")
					getCategotySel();
				if (optField.length > 0)
					changeOptions();
				else
					changePrices();
			}
		} else
			alert(gPriceErr+"count");
	} else
		alert(gPriceErr+"xml-product");
}

function setTabs(evt) {
	if (evt == null)
		evt = window.event; // For IE
	var el = evt.toElement  ? evt.toElement   : evt.relatedTarget ; // when mouseout use toElement on IE, relatedTarget on Firefox
	//window.status = el.tagName+":"+el.id+"-"+selIdx; //debug in IE
	if(!((el.tagName=="DIV") || el.tagName=="LI" || el.tagName=="A" || el.tagName=="TABLE" || el.tagName=="TD" || el.tagName=="TR"))
		TabbedPanels1.showPanel(selIdx);
}

function na_open_window(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'no';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'no';
  resizable_str = resizable ? 'yes' : 'no';

  cookie_str = document.cookie;
  cookie_str.toString();

  pos_start  = cookie_str.indexOf(name);
  pos_end    = cookie_str.indexOf('=', pos_start);

  cookie_name = cookie_str.substring(pos_start, pos_end);

  pos_start  = cookie_str.indexOf(name);
  pos_start  = cookie_str.indexOf('=', pos_start);
  pos_end    = cookie_str.indexOf(';', pos_start);
  
  if (pos_end <= 0) pos_end = cookie_str.length;
  cookie_val = cookie_str.substring(pos_start + 1, pos_end);
  if (cookie_name == name && cookie_val  == "done")
    return;

  window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
}

var imgName;
function openEnlarge(fname)
{
	var pos = fname.lastIndexOf('/');
	imgName = fname.substring(pos+1);	// set global name for sub window
	var para = "toolbars=1,location=0,menubar=0,scrollbars=1,width=500,height=500";
	newLarge = window.open('enlarge.html','newLarge',para); 
	if (window.focus) 
		newLarge.focus();
	//imgName = "enlarge/"+imgName;
	//Shadowbox.open({content:imgName,player: 'img',title:"獎狀證書邊框"});
   	return false;
}

// get url value by name
function getValue(varname)
{
	var url = window.location.href;
	var qparts = url.split("?");
	// Check that there is a querystring, return "" if not
	if (qparts.length == 1)	{
		return "";
	}
	// Then find the querystring, everything after the ?
	var query = qparts[1];

	// Split the query string into variables (separates by &s)
	var vars = query.split("&");

	// Initialize the value with "" as default
	var value = "";

	// Iterate through vars, checking each one for varname
	for (i=0;i<vars.length;i++) {
	// Split the variable by =, which splits name and value
		var parts = vars[i].split("=");
    
		// Check if the correct variable
		if (parts[0] == varname) {
			// Load value into variable
			value = parts[1];
			var at = value.indexOf('#'); //remove anchor
			if (at  != -1)
				value = value.substring(0,at);
			// End the loop
			break;
		}
	}
	// Convert escape code
	value = unescape(value);
	// Convert "+"s to " "s
	value.replace(/\+/g," ");

	return value;
}

// start of update price and upload panel
var batchId;
var url_flag;
function url_handler() {
	url_flag = getValue("flag");
	if (url_flag.length != 0) {
		document.getElementById("upload_panel").style.display="none";
		document.getElementById("back_btn").style.visibility="visible";
		if (url_flag != "true") {
			document.getElementById("save_btn").style.display="inline";
			batchId = getValue("bid");
		}
	}
}

function update_price() {
	var pageinfo=document.getElementById('pageinfo').value;
	var quan	=document.getElementById('quantity').value;
	var total	=document.getElementById('grandTotal').value;
	var url		="../webupload/updPrice.jsp?batchid="+batchId + "&pageinfo="+encodeURIComponent(pageinfo)
	  	+ "&quan="+encodeURIComponent(quan) + "&total="+encodeURIComponent(total)+"&tm="+new Date().valueOf();;
	Spry.Utils.loadURL("GET", url, false, processBatchID);
}
function processBatchID(req)
{
	var respTxt = trim(req.xhRequest.responseText);
	if (respTxt.indexOf("error") != -1)
		alert("資料庫錯誤，未更改估價!!!");
	else {
		alert("我的訂單內-勾選[訂購]鈕，進入訂購視窗完成下單手續!");
		if (url_flag == "www")
			document.location = "myjobs.html";
		else
			document.location = "http://shop.eprint.com.tw/ecapp/pdfquery.jsp";
	}
}
// end of update price and upload panel

function resetComplete(req)
{
	var respTxt = trim(req.xhRequest.responseText);
	if (respTxt.indexOf("error") != -1)
		alert("重設密碼發生錯誤："+respTxt);
	else {
		alert("已重設密碼 !\n請至email信箱取得暫用密碼，\n如果找不到信件，有可能在<垃圾郵件>裡。");
	}
}

function resetPass()
{
 	if (email_validation("email", "請輸入正確格式的email帳號")) {
		var url="../webupload/passwords.jsp?flag=2&email="+document.getElementById("email").value;
		Spry.Utils.loadURL("GET", url, false, resetComplete);
	}
}

function onlyNumbers(obj) {
	var re = /^[0-9]*$/;
	if (!re.test(obj.value)) {
		obj.value = obj.value.replace(/[^0-9]/g,"");
	}
}

function valid_Numbers(obj,needLen)
{
	var re = /^[0-9]*$/;
	if (!re.test(obj.value)) {
		obj.value = obj.value.replace(/[^0-9]/g,"");
	}
	if (needLen ==0 ) return;
	var temp = obj.value;
	var iLen = temp.length;
	if (iLen > 0 && iLen != needLen) {
		alert("號碼位數不足，只輸入："+iLen+" 碼");
		obj.focus(); 
	}
}
