var GST = 0.05;
var PST = 0.08;



// check string is pure digits or not
function checkphone(obj){
    var regNaN = /\D+/;
    var regNum = /\d+/;
    if (obj.value.match(regNaN)!=null) {
        alert("This field should be digit");
	var num = obj.value.match(regNum);
	if (num == null) {
	    obj.value = "";
	} else {
	    obj.value = obj.value.match(regNum);
	}
    }
}

// check input can only be digits and .
function checkmoney(obj,count,flag){
    var regOther = /[^0-9\.\-]+/;
    var regMoney = /[0-9\.]+/g;
    var temp;

    if (regOther.test(obj.value)){
        alert('This field can only be entered with fractional number.');
	temp = obj.value.match(regMoney);
	if (temp == null){
	    obj.value = '0';
	    if (flag == '0'){
	        change_price(count);
	    }
	    else if (flag == '1'){
	        change_addon_price(count);
	    }
	} else {
	    obj.value = obj.value.match(regMoney);

	    if (flag == '0'){
	        change_price(count);
	    }
	    else if (flag == '1'){
	        change_addon_price(count);
	    }
	}
    }
}

// check HHmm time format
function checktime(str){
    var regTime = /^\d\d\d\d$/;
    if (!regTime.test(str)){
        return false
    } else {
	return true;
    }
}

// check all fields are from 0 to 9
function checknumber(str){
    var regNumber = /^\d+$|^\-\d+$/;
    if (!regNumber.test(str)){
        return false
    } else {
	return true;
    }
}

// check date format is complain with YYYY-mm-dd
function checkdate(str){
    var regDate = /^\d\d\d\d-\d\d-\d\d$/;
    if (!regDate.test(str)){
        return false
    } else {
	return true;
    }
}

function checkanyfraction(str){
    var regFraction = /^\d+\.\d+$|^\-\d+\.\d+$/;

    if (!regFraction.test(str)){
	return false;
    } else {
	return true;
    }
}

// transfer number into fraction
function fractioncorrect(obj){
    var str = obj.value;
    var temp;
    var regFrac1 = /^\d+\.\d$/;
    var factor1 = 0.5;
    var regFrac2 = /^\d+\.\d\d$/;
    var regFrac3 = /^\d+\.\d{3,}/;
    var factor3 = 0.05
    var regFrac4 = /^\d+\.$/;

    if (checknumber(str) == true || checkanyfraction(str) == true){
	if (checknumber(str) == true){
	    str = str + '.00';
	}
	else if (checkanyfraction(str) == true){
	    if (regFrac1.test(str)){
	        str = str + '0';
	    }
	    else if (regFrac4.test(str)){
	        str = str + '00';
	    }
	    else if (regFrac2.test(str)){
	        str = str;
            }
	    else if (regFrac3.test(str)){
	        temp = eval(str);
	        str = temp.toFixed(2);
	    }
	}
    }

    obj.value = str;
}

// transfer number into fraction
function fractioncorrectstr(str){
    var temp;
    var regFrac1 = /^\d+\.\d$/;
    var factor1 = 0.5;
    var regFrac2 = /^\d+\.\d\d$/;
    var regFrac3 = /^\d+\.\d{3,}/;
    var factor3 = 0.05

    if (checknumber(str) == true || checkanyfraction(str) == true){
	if (checknumber(str) == true){
	    str = str + '.00';
	}
	else if (checkanyfraction(str) == true){
	    if (regFrac1.test(str)){
	        str = str + '0';
	    }
	    else if (regFrac2.test(str)){
	        str = str;
            }
	    else if (regFrac3.test(str)){
	        temp = eval(str);
	        str = temp.toFixed(2);
	    }
	}
    } else {
	str = '';
    }

    return str;
}

// check numeric format like xxx.xx
function checkfraction(str){
    var regFraction = /^\d+\.\d\d$|^\-\d+\.\d\d$/;

    if (!regFraction.test(str)){
	return false;
    } else {
	return true;
    }
}

//check email address format 
function checkemail(str){
     var email_field = /^[A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)*[@][A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)+$/
//     var matchArr = document.form1.txt_Email.value.match(email_field);
       var matchArr = str.match(email_field);
	//Verify Email					
	if (matchArr == null)  
	{
	    return false;
	} else {
	    return true;
	}
}

//clear all tags' value which started with input
function clearInput(objs){
    for (var i=0;i<objs.length;i++){
        if (objs[i].type != 'hidden'){
	    if (objs[i].type == 'text'){
	        objs[i].value = '';
	    }
	    else if (objs[i].type == 'checkbox'){
	        objs[i].checked = false;
	    }
	    else if (objs[i].type == 'radio'){
	        objs[i].checked = false;
	    }
	}
    }
}

//clear all dropdown list which started with select
function clearSelect(objs){
    for (var i=0;i<objs.length;i++){
        for (var j=0;j<objs[i].length;j++){
	    if (objs[i].id != 'bookingtype')
	    if (objs[i][j].value == ''){
	        objs[i][j].selected = true;
	    }
	}
    }
}

//clear all tags' value which started with textarea
function clearTextArea(objs){
    for (var i=0;i<objs.length;i++){
	objs[i].value = '';
    }
}

// check decimals format must be 2 bits.
function checkdecimals(obj){	
    var va;
    if (obj.value != '' && checknum(obj.value)){
      	alert("This field should be digit and dot,please try again.");
	obj.focus();
	obj.value = '';
        return false;
    }else{
        va =( Math.round(obj.value*100)/100).toFixed(2);
        obj.value = va;
    }
}

// check numeric format like xxx
function checknum(str){
//   var regFraction = /\d+\.\d\d/;
   var regFraction = /^\d+$|^\d+\.\d+$|^\.\d+$|^\d+\.$/;

    if (regFraction.test(str)){
	return false;
    } else {
	return true;
    }
}

function isPdf(str){
    var regFile = /^[a-zA-Z0-9\\/\-_:\s()]+\.pdf$/i;

    if (regFile.test(str) == true){
        return true;
    } else {
        return false;
    }
}

function isPic(str){
    var flag = 0;
    var regGIF = /^[a-zA-Z0-9\\/\-_:\s()]+\.gif$|^[a-zA-Z0-9\\/\-_:\s()]+\.GIF$/i;
    var regJPG = /^[a-zA-Z0-9\\/\-_:\s()]+\.jpg$|^[a-zA-Z0-9\\/\-_:\s()]+\.JPG$/i;

    if (regGIF.test(str) == true || regJPG.test(str) == true){
	flag = 1;
    }

//    alert(flag);

    if (flag == 1){
	return true;
    }
    else {
	return false;
    }
}

function isUrl(str){
    var regUrl = /^[a-zA-Z0-9\-_]+(.[a-zA-Z0-9\-_]+)*\.[a-zA-Z0-9\-_]+$/i;

    if (regUrl.test(str) == true){
        return true;
    } else {
        return false;
    }
}

/**
* Function : dump()
* Arguments: The data - array,hash(associative array),object
*    The level - OPTIONAL
* Returns  : The textual representation of the array.
* This function was inspired by the print_r function of PHP.
* This will accept some data as the argument and return a
* text that will be a more readable version of the
* array/hash/object that is given.
*/
function dump(arr,level) {
    var dumped_text = "";
    if(!level) level = 0;
	
    //The padding given at the beginning of the line.
    var level_padding = "";
    for(var j=0;j<level+1;j++) level_padding += "    ";
	
    if(typeof(arr) == 'object') { //Array/Hashes/Objects 
        for(var item in arr) {
            var value = arr[item];
			
	    if(typeof(value) == 'object') {
	        //If it is an array,
	        dumped_text += level_padding + "'" + item + "' ...\n";
	        dumped_text += dump(value,level+1);
	    } else {
		dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
	    }
	}
    } else {
        //Stings/Chars/Numbers etc.
        dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
    }
    
    return dumped_text;
}

// check single or double quote
function checkQuote(str){
    var regQuote = /['"/\\]/i;

    if (regQuote.test(str) == true){
        return true;
    } else {
        return false;
    }
}

function hasQuote(){
    var array_obj = document.getElementsByTagName('input');
    for (var i=0;i<array_obj.length;i++){
        if (array_obj[i].type == 'text'){
	    if (checkQuote(array_obj[i].value) == true){
	        alert('Every field on the page should not have SINGLE, DOUBLE QUOTE, SLASH OR BACK SLASH!');
		array_obj[i].focus();
		return false;
	    }
	}
    }
    
    return true;
}

// register event handler
function enableEnter(){
    var browser = navigator.userAgent;

    if (browser.indexOf('MS') != -1){
        document.attachEvent("onkeydown",allwaysSubmit_I);
    }
    else if (browser.indexOf('Firefox') != -1){
	document.addEventListener('keydown',allwaysSubmit_F,false)
    }
}

// when pressing enter goes to submit for IE
function allwaysSubmit_I(){
    if (window.event.keyCode == '13'){
	if (sendData('Check') == false){
	    return false;
	}
    }
}

// when pressing enter goes to submit for Firefox
function allwaysSubmit_F(Event){
    if (Event.keyCode == '13'){
	if (sendData('Check') == false){
	    return false;
	}
    }
}

function searchaid(obj,id){
    var dropdown = document.getElementById(id);
    for (var i=0;i<dropdown.length;i++){
        if (dropdown.options[i].text.indexOf(obj.value,0)!=-1 && dropdown.options[i].text.indexOf(obj.value,0)<obj.value.length){
            dropdown.options[i].selected = true;
            break;
        }
    }
}

function checktimesize(str){
    var uhour = str.substr(0,2);
    var uminut = str.substr(2,2);

    if (uhour>23 || uminut>59){
        return false;
    } else {
	return true;
    }
}


// This function will popup a screen which display Version, company name
// and so on
// Author: William Wong
// Return: null
function aboutWP(){

    newWin = window.open('','WhitePanel','left='+((screen.width/2)-215)+',top='+((screen.height/2)-260)+',width=430,height=340,toolbar=no,resizable=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes');
    newWin.document.writeln("<html>");
    newWin.document.writeln("<head><title>About my White Panel</title></head>");
    newWin.document.writeln("<body bgcolor='#FFFFFF'");
    newWin.document.writeln("<center><table border=0 width=300><tr><td><font size=2 face='Arial'>");
    newWin.document.writeln("<img src='/others/images/wp_aboutus.jpg' border=0 />");
    newWin.document.writeln("</font></td></tr></table></center>");
    newWin.document.writeln("</body>");
    newWin.document.writeln("</html>");
    newWin.focus();
    return;
}


function copyright(objid){
    var copyrighttime = new Date();

    if (document.getElementById(objid) != null){
        document.getElementById(objid).innerHTML = 'Copyright <a href="http://www.babysoft.ca" class="blackLink" target="_blank">Babysoft</a> &copy; '+(copyrighttime.getFullYear())+'.'+'&nbsp;All Rights Reserved.&nbsp;<br>';
    }
}

function prnTime(){
    var date = new Date();
    var outList = '';
    var y = '',m = '',d='',hr = '',mi = '',sec = '';
    
    outList = date.toDateString()+' '+date.toLocaleTimeString();
    document.getElementById('dateContainer').innerHTML = outList;
}

function refreshTime(interval){
    setInterval(prnTime,interval);
}


function disableInput(){
    var objs = document.getElementsByTagName('input');
    for (var i=0;i<objs.length;i++){
        if (objs[i].type == 'text' || objs[i].type == 'button' || objs[i].type == 'checkbox' || objs[i].type == 'file' || objs[i].type == 'radio'){
	    objs[i].disabled = true;
	}
    }
}

function disableSelect(){
    var objs = document.getElementsByTagName('select');
    for (var i=0;i<objs.length;i++){
        objs[i].disabled = true;
    }
}

function disableText(){
    var objs = document.getElementsByTagName('textarea');
    for (var i=0;i<objs.length;i++){
        objs[i].disabled = true;
    }
}

function disableImgLink(fn){
    var objs = document.getElementsByTagName('img');
    for (var i=0;i<objs.length;i++){
        if (objs[i].onclick != null){
            objs[i].onclick = fn;
	}
    }
}

function disableTextLink(fn){
    var objs = document.getElementsByTagName('a');
    for (var i=0;i<objs.length;i++){
        if (objs[i].onclick != null){

	   if(objs[i].id != 'my_location_1' && objs[i].id != 'my_location_2'){
              objs[i].onclick = fn;
	   }
	}		
    }  
}

function my_alert(){
    alert("Permission Denied");	
    return false;
}

// %GROUP = (1=>'Sales',2=>'Web',3=>'Accounting',4=>'Accounting Report',5=>'Tour',6=>'Admin',7=>'Utilities');
// %PERMISSION = (1=>'Manager', 2=>'Employee', 3=>'None Access', 4=>'Readonly',); 

function disableRptTextLink(fn){
    var objs = document.getElementsByTagName('a');
    for (var i=0;i<objs.length;i++){
        if (objs[i].onclick != null){

	   if(objs[i].name != 'invoice'){
              objs[i].onclick = fn;
	   }
	}		
    }  
}
