function trim(str) { 
	return str.replace(/(^\s*)|(\s*$)/g,"");
}

function checkAll(fieldName) {
	var box = document.getElementsByName(fieldName);
	for(i=0;i < box.length; i++) {
		box[i].checked = true;
	}
}

function unCheckAll(fieldName) {
	var box = document.getElementsByName(fieldName);
	for(i=0;i < box.length; i++) {
		box[i].checked = false;
	}
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) 
		return false

	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null) 
		return false

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255)
				return false
		}
		return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null)
		return false

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
	   return false

	if (len<2)
	   return false

	return true;
}

function genDate(yearID,monthID,dayID) {
	var dateset1 = new Array(31,29,31,30,31,30,31,31,30,31,30,31)
	var dateset2 = new Array(31,28,31,30,31,30,31,31,30,31,30,31)
	var remonth = document.getElementById(monthID).selectedIndex

	if ((document.getElementById(yearID).value % 4) == 0)
		document.getElementById(dayID).options.length = dateset1[remonth];
	else
		document.getElementById(dayID).options.length = dateset2[remonth];
	
	for(i=1;i<=document.getElementById(dayID).options.length;i++){
		document.getElementById(dayID).options[i-1].text = i;
		document.getElementById(dayID).options[i-1].value = i;
	}
}

function numOnly(str) {
	var output = "";
	for (i=0; i<str.value.length; i++) {
		if (str.value.substr(i,1) >= "0" && str.value.substr(i,1) <= "9") {
			output += str.value.substr(i,1);
		}
	}
	str.value = output;
}

function handleEnter (functionName, event) {	
	if (event.keyCode == 13) {
		eval(functionName);
		return false;
	} else {
		return true;
	}
}

function stopRKey(evt) {
	var evt = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	if (evt.keyCode == 27) {
	   	return false;
	}
}

function checkCheckBox(checkBoxName) {
	var boxcheck = false;
	var itemID = document.getElementsByName(checkBoxName);

	for(i=0; i<itemID.length; i++){
		if(itemID[i].checked){
			boxcheck = true;
			break;
		}
	}
	return boxcheck;
}

function openNoMenuWindow(page,pageName,width,height) {
	window.open(page, pageName, 'toolbar=no,location=no,directories=no,menubar=no,status=no,scrollbars=yes,resizable=yes,width='+width+',height='+height);	
} 

function rawurlencode (str) {
    var hexStr = function (dec) {
        return '%' + dec.toString(16).toUpperCase();
    };

    var ret = '',unreserved = /[\w.~-]/;
    str = (str+'').toString();

    for (var i = 0, dl = str.length; i < dl; i++) {
        var ch = str.charAt(i);
        if (unreserved.test(ch)) {
            ret += ch;
        } else {
            var code = str.charCodeAt(i);
            
            if (code < 128) { 
                ret += hexStr(code);
            } else if (code >= 128 && code < 2048) { 
                ret += hexStr((code >> 6) | 0xC0);
                ret += hexStr((code & 0x3F) | 0x80);
            } else if (code >= 2048 && code < 65536) { 
                ret += hexStr((code >> 12) | 0xE0);
                ret += hexStr(((code >> 6) & 0x3F) | 0x80);
                ret += hexStr((code & 0x3F) | 0x80);
            } else if (code >= 65536) { 
                ret += hexStr((code >> 18) | 0xF0);
                ret += hexStr(((code >> 12) & 0x3F) | 0x80);
                ret += hexStr(((code >> 6) & 0x3F) | 0x80);
                ret += hexStr((code & 0x3F) | 0x80);
            }
        }
    }
    return ret;
}

function printPartOfInfo(partData) {
	
	 var iframe =document.createElement('iframe');
	 iframe.width=0;
	 iframe.height=0;
	 document.body.appendChild(iframe);

	 if(iframe) {   
	
		var ifWin = iframe.contentWindow || iframe;
		ifWin.document.open();
		ifWin.document.write(partData);
		ifWin.document.close();
		ifWin.focus();
		ifWin.print();
	 }
	iframe.parentNode.removeChild(iframe);
}

function replaceString(str,currentWord,replaceWord) {
	
	var intIndexOfMatch = str.indexOf(currentWord);

	while (intIndexOfMatch != -1){
	
		str = str.replace(currentWord,replaceWord)
		intIndexOfMatch = str.indexOf(currentWord);
	}
	return str;
}

function resize(left_id, right_id) {    
	var left_col=($("#"+left_id).height());    
	var right_col=($("#"+right_id).height());    
	
	if(left_col > right_col) {        
		$("#"+right_id).height($("#"+left_id).height());
	} else if(right_col > left_col) {       
		$("#"+left_id).height($("#"+right_id).height());
	} 
}

if(!window.anglia){ anglia = {}; }

anglia.copyright = { 'site' : "http://www.anglia.com.hk" }

anglia.shoppingcart = {
	cartvalues : {},
	calculate_cart : function(){},
	updatesession : function(){}
}

anglia.shoppingcart.calculate_cart = function (){
	if(!window.cartvalues) return;

	var self = this;
	var shoppingcart = window.cartvalues;
	var sum_total = 0;
	for (var x in shoppingcart) { 
		//display sub-total element
		var el = document.getElementById('sub_num_' + shoppingcart[x].id);
		// quality input element
		var input = document.getElementById('qty_' + shoppingcart[x].id);

		var price = parseFloat(shoppingcart[x].price); 
		var qty = parseInt(input.value);
		if(qty != shoppingcart[x].qty){
			self.updatesession(shoppingcart[x].id, 'qty', qty);
			shoppingcart[x].qty = qty;
		}
		var total = qty * price;
		
		sum_total += total;

		total = anglia.num2money(total);
		el.innerHTML = total;

	}
	var sum = document.getElementById('cart_sum_num');
	sum.innerHTML = anglia.num2money(sum_total);

}

anglia.shoppingcart.updateRemarks = function(ObjId, itemId){
	if(!window.cartvalues) return;
	var self = this;
	
	var remarks = $('#' + ObjId).val();
	var Id = itemId;
	
	self.updatesession(Id, 'remarks', remarks);


}


anglia.shoppingcart.updatesession = function(id, key, value){
	$.ajax({
	   type: "POST",
	   url: "ajax/ajax_saveSession.php",
	   data: ({id : id, key : key, value : value}),
	   success: function(msg){
			//alert(msg);
			//document.getElementById('ajaxcontent').innerHTML = msg;
	   }
	 });
}

anglia.num2money = function(n_value) {
	if (isNaN(Number(n_value)))
		return 'ERROR';

	var b_negative = Boolean(n_value < 0);
	n_value = Math.abs(n_value);

	var s_result = String(Math.round(n_value * 1e2) % 1e2 + '00').substring(0, 2);

	var b_first = true;
	var s_subresult;
	while (n_value >= 1) {
		s_subresult = (n_value >= 1e3 ? '00' : '') + Math.floor(n_value % 1e3);
		s_result = s_subresult.slice(-3) + (b_first ? '.' : ',') + s_result;
		b_first = false;
		n_value = n_value / 1e3;
	}

	if (b_first) s_result = '0.' + s_result;

	return b_negative ? '($' + s_result + ')' : '$' + s_result;
}

anglia.returnURLParas = function (org, select){
	var i = org.indexOf(select);
	//alert(select.length);
	return org.substring(i + (select.length), org.length);
}
