/* clock stuff */
var timerID = null
var timerRunning = false

function stopclock(){
    if(timerRunning)
        clearTimeout(timerID)
    timerRunning = false
}

function startclock(){
    stopclock()
    showtime()
}

function showtime(){
    var now = new Date()
    var hours = now.getHours()
    var minutes = now.getMinutes()
    var seconds = now.getSeconds()
    var timeValue = hours
    timeValue  += ((minutes < 10) ? ":0" : ":") + minutes
    timeValue  += ((seconds < 10) ? ":0" : ":") + seconds
    document.getElementById('clock').firstChild.nodeValue = timeValue
    timerID = setTimeout("showtime()",1000)
    timerRunning = true
}

function isUndefined(a) {
    return typeof a == 'undefined';
}

function selections_validate(deliverto, totalcount) {
    var checkbox_choices = 0;

    for (counter = 0; counter < totalcount; counter++) {
        var elem = 'chk'+(counter+1);
        if (document.selections.elements[elem].checked) {
            checkbox_choices = checkbox_choices + 1;
        }
    }

    if (checkbox_choices < 1) {
        alert("Please tick at least one item from the list below.");
    } else {
        document.selections.action = deliverto;
        document.selections.submit();
    }
}

function selections_validate_del(deliverto, totalcount) {
    var checkbox_choices = 0;

    for (counter = 0; counter < totalcount; counter++) {
        var elem = 'chk'+(counter+1);
        if (document.selections.elements[elem].checked) {
            checkbox_choices = checkbox_choices + 1;
        }
    }

    if (checkbox_choices < 1) {
        alert("Please tick at least one item from the list below.");
    } else {
        if (confirm('Are you sure you want to delete all selected items.\nPLEASE NOTE: Any related items may be deleted!')) {
            document.selections.action = deliverto;
            document.selections.submit();
        }
    }
}

function pfv(deliverto, getvars) {
    link = deliverto+'?'+getvars
    MM_openBrWindow(link, '', '');
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
      window.open(theURL,winName,features);
}

function selectAll(theform, thecheckbox) {
   for(var i=0; i<30; i++) {
      if (document.selections.elements['chk'+i]) {
        document.selections.elements['chk'+i].checked = true;
      }
   }
}

function dselectAll() {
   for(var i=0; i<30; i++) {
      if (document.selections.elements['chk'+i]) {
         document.selections.elements['chk'+i].checked = false;
      }
   }
}

function toggle_select(the_element, toggle_option) {
    if (toggle_option=='select_all') {
        $(the_element).each(function(){  
            $(the_element + " option").attr("selected","selected");  
        });  
    } else if (toggle_option=='deselect_all') {
        $(the_element + " option").removeAttr("selected");
    }
}

function checkBox(themouseevent, box, i, theclass) {
	selected_row_style = "selected";
	x = 'tr' + i;
	if(themouseevent=="click") {
		if(box.checked==true) {
			box.checked = false;
			document.getElementById(x).className =  theclass;
		} else {
			box.checked = true;
			document.getElementById(x).className =  selected_row_style;
		}
	} else if(themouseevent=="over") {
		if(box.checked==false) document.getElementById(x).className =  theclass;
	} else if(themouseevent=="out") {
		(box.checked==false) ? document.getElementById(x).className =  theclass : document.getElementById(x).className =  selected_row_style;
	} else if(themouseevent=="selectAll") {
		for(var n=0; n<31; n++) {
			thebox = box + n;
			if(document.getElementById(thebox)) {
			     document.getElementById(thebox).checked = true;
			     x = 'tr' + n;
			     document.getElementById(x).className = selected_row_style;
			}
		}
	}  else if(themouseevent=="dselectAll") {
		for(var n=0; n<31; n++) {
			thebox = box + n;
			if(document.getElementById(thebox)) {
			     document.getElementById(thebox).checked = false;
			     x = 'tr' + n;
			     (n%2==0) ? theclass = "row" : theclass = "alt";
			     document.getElementById(x).className =  theclass;
			}
		}
	}
}

document.getElementsByClassName = function(cl) {
    var retnode = [];
    var myclass = new RegExp('\\b'+cl+'\\b');
    var elem = this.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }
    return retnode;
};


function listings_chooseLayer() {

    if(document.getElementById('listingtype').value=="Residential") {
        elements = document.getElementsByClassName('residential');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'block';

        elements = document.getElementsByClassName('commercial');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'none';

        elements = document.getElementsByClassName('holiday');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'none';

	} else if(document.getElementById('listingtype').value=="Commercial") {
        elements = document.getElementsByClassName('residential');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'none';

        elements = document.getElementsByClassName('commercial');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'block';

        elements = document.getElementsByClassName('holiday');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'none';

	} else if(document.getElementById('listingtype').value=="Holiday") {
        elements = document.getElementsByClassName('residential');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'none';

        elements = document.getElementsByClassName('commercial');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'none';

        elements = document.getElementsByClassName('holiday');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'block';
	} else {
        elements = document.getElementsByClassName('residential');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'block';

        elements = document.getElementsByClassName('commercial');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'none';

        elements = document.getElementsByClassName('holiday');
        for (i = 0; i<elements.length; i++)
            elements[i].style.display = 'none';
    }
}


function init() {
    setTimeout('winprnt()', 2500);
}
function winprnt() {
    alert("Please set your printer orientation to portrait and your paper size to A4");
    window.print();
    return true;
}


function init_2() {
    setTimeout('winprnt_2()', 2500);
}
function winprnt_2() {
    alert("Please set your printer orientation to landscape and your paper size to A4");
    window.print();
    return true;
}


function sleek_init() {
    setTimeout('winprnt_sleek()', 2500);
}
function winprnt_sleek() {
    show_print_details();
    window.print();
    return true;
}

function show_print_details(){
	$('print_details').show();
    $('print_details_overlay').show();
    return false;
}

function hide_print_details(){
    $('print_details').hide();
    $('print_details_overlay').hide();
    return false;
}


var postal_address = "";

function SavePostalAddress(form) {
    postal_address = form.postal_address.value;
}

function PostalToPhysical(form) {
    if (form.same_address.checked) {
        SavePostalAddress(form);
        form.postal_address.value = form.delivery_address.value;
    } else {
        form.postal_address.value = postal_address;
    }
}

function confirmation_delete(form) {

        if (confirm('Are you sure you want to delete '+ document.getElementById(form).edit_email.value  +' from the Confirmation Details List?')) {
		  document.getElementById(form).mode.value = 'delete_confirmation';
		  document.getElementById(form).submit();
        }

}
function validate_confirmation_add(form) {

	if(document.getElementById(form).edit_email.value == "") {
		alert("Please Enter an E-mail Address");
	} else if ((document.getElementById(form).edit_email.value.search("@")==-1) || (document.getElementById(form).edit_email.value.search("[.*]")==-1)) {
        alert("Please make sure that you fill in the email field correctly.");
	} else if(document.getElementById(form).edit_sms.value == "") {
		alert("Please Enter an SMS Number");
	} else {
		document.getElementById(form).mode.value = 'update_confirmation';
		document.getElementById(form).submit();
	}
}


function director_delete(form) {

        if (confirm('Are you sure you want to delete '+ document.getElementById(form).edit_director_name.value  +' from the Director List?')) {
		  document.getElementById(form).mode.value = 'delete';
		  document.getElementById(form).submit();
        }

}
function validate_director_add(form) {

	if (document.getElementById(form).edit_director_name.value == "") {
		alert("Please Enter a Name");
	} else if(document.getElementById(form).id_number.value == "") {
		alert("Please Enter an ID Number");
	} else if(document.getElementById(form).contact_number.value == "") {
		alert("Please Enter a Cell Number");
	} else if(document.getElementById(form).email.value == "") {
		alert("Please Enter an E-mail Address");
	} else if ((document.getElementById(form).email.value.search("@")==-1) || (document.getElementById(form).email.value.search("[.*]")==-1)) {
        alert("Please make sure that you fill in the email field correctly.");
	} else {
		document.getElementById(form).mode.value = 'update_director';
		document.getElementById(form).submit();
	}
}

function validate_new_add(form) {

	if (document.getElementById(form).headline.value == "") {
		alert("Please Enter a Headline.");
	} else if(document.getElementById(form).body.value == "") {
		alert("Please Enter the Body of the message.");
	} else if(document.getElementById(form).new_date_added.value == "") {
		alert("Please Enter the Date to be Published.");
	} else {
		document.getElementById(form).submit();
	}
}

function new_confirmation(the_counter) {

    the_counter++;
    col1 = TD(null, ('Email Address   '+the_counter),('.....'),INPUT({'id': 'email_confirmation_'+the_counter, 'value': 'Email Address', 'name': 'email_confirmation_'+the_counter, 'class': 'vTextField', 'onclick': "if (this.value=='Email Address') this.value=''", 'onblur': "if (this.value=='') this.value='Email Address'" }));
    col2 = TD(null, ('SMS Number   '+the_counter), INPUT({'id': 'sms_'+the_counter,'maxlength':'10', 'name': 'sms_'+the_counter, 'class': 'vTextField', 'onclick': "if (this.value=='SMS Number') this.value=''", 'onblur': "if (this.value=='') this.value='SMS Number'", 'value': 'SMS Number'}));

	blank = TD('test')

    cell = TR({id: 'confirmation_item_'+ the_counter, name: 'confirmation_item_'+ the_counter}, col1, col2);

    i = the_counter - 1;
    elem_id = 'sms_' + i;
    the_elem = getElement(elem_id).parentNode.parentNode;

	MochiKit.DOM.insertSiblingNodesAfter(the_elem, cell);

	the_elem = getElement('con_new_ref');
    setNodeAttribute(the_elem, 'onclick', "new_confirmation("+the_counter+");");

    the_elem = getElement('con_del_ref');
    setNodeAttribute(the_elem, 'onclick', "del_confirmation("+the_counter+");");

    the_elem = getElement('num_of_con');
    setNodeAttribute(the_elem, 'value', the_counter);


}

function del_confirmation(the_counter) {

    if (the_counter>1) {
        elem_id = 'email_confirmation_' + (the_counter);
        the_elem = getElement(elem_id).parentNode.parentNode;
        removeElement(the_elem);

        the_counter--;
        the_elem = getElement('con_new_ref');
        setNodeAttribute(the_elem, 'onclick', "new_confirmation("+the_counter+");");

        the_elem = getElement('con_del_ref');
        setNodeAttribute(the_elem, 'onclick', "del_confirmation("+the_counter+");");

        the_elem = getElement('num_of_ref');
        setNodeAttribute(the_elem, 'value', the_counter);

    }

}

function new_director(the_counter) {

    the_counter++;
    col1 = TD(null, INPUT({'id': 'director_name_'+the_counter, 'value': 'Directors Name', 'name': 'director_name_'+the_counter, 'class': 'vTextField-director', 'onclick': "if (this.value=='Directors Name') this.value=''", 'onblur': "if (this.value=='') this.value='Directors Name'" }));
    col2 = TD(null, INPUT({'id': 'id_number_'+the_counter, 'name': 'id_number_'+the_counter, 'class': 'vTextField-director', 'onclick': "if (this.value=='ID Number') this.value=''", 'onblur': "if (this.value=='') this.value='ID Number'", 'value': 'ID Number'}));
    col3 = TD(null, INPUT({'id': 'address_'+the_counter, 'name': 'address_'+the_counter, 'class': 'vTextField-director', 'onclick': "if (this.value=='Physical Address') this.value=''", 'onblur': "if (this.value=='') this.value='Physical Address'", 'value': 'Physical Address'}));
    col4 = TD(null, INPUT({'id': 'contact_number_'+the_counter, 'name': 'contact_number_'+the_counter, 'class': 'vTextField-director', 'onclick': "if (this.value=='Contact Number') this.value=''", 'onblur': "if (this.value=='') this.value='Contact Number'", 'value': 'Contact Number' , 'maxlength':'12'}));
    col5 = TD(null, INPUT({'id': 'email_'+the_counter, 'name': 'email_'+the_counter, 'class': 'vTextField-director', 'onclick': "if (this.value=='Email Address') this.value=''", 'onblur': "if (this.value=='') this.value='Email Address'", 'value': 'Email Address'}));
    cell = TR({id: 'director_item_'+ the_counter, name: 'director_item_'+ the_counter}, col1, col2, col3, col4, col5);

    i = the_counter - 1;
    elem_id = 'director_name_' + i;
    the_elem = getElement(elem_id).parentNode.parentNode;

	MochiKit.DOM.insertSiblingNodesAfter(the_elem, cell);

	the_elem = getElement('btn_new_ref');
    setNodeAttribute(the_elem, 'onclick', "new_director("+the_counter+");");

    the_elem = getElement('btn_del_ref');
    setNodeAttribute(the_elem, 'onclick', "del_director("+the_counter+");");

    the_elem = getElement('num_of_ref');
    setNodeAttribute(the_elem, 'value', the_counter);

}

function del_director(the_counter) {

    if (the_counter>1) {
        elem_id = 'director_name_' + (the_counter);
        the_elem = getElement(elem_id).parentNode.parentNode;
        removeElement(the_elem);

        the_counter--;
        the_elem = getElement('btn_new_ref');
        setNodeAttribute(the_elem, 'onclick', "new_director("+the_counter+");");

        the_elem = getElement('btn_del_ref');
        setNodeAttribute(the_elem, 'onclick', "del_director("+the_counter+");");

        the_elem = getElement('num_of_ref');
        setNodeAttribute(the_elem, 'value', the_counter);

    }

}

function selectall(obj) {
	obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
	if (obj.tagName.toLowerCase() != "select")
		return;
	for (var i=0; i<obj.length; i++) {
		obj[i].selected = true;
	}
}

function selectnone(obj) { /* NEW added from version 1.1 */
	obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
	if (obj.tagName.toLowerCase() != "select")
		return;
	for (var i=0; i<obj.length; i++) {
		obj[i].selected = false;
	}
}

function validate(form) {

    var edit_director_name  = 'passed';
    var address      		= 'passed';
    var id_number   		= 'passed';
	var contact_number      = 'passed';
    var email       		= 'passed';

    for (i=1; i<=$('num_of_ref').value; i++) {

	    if ($('director_name_'+i).value == '' || $('director_name_'+i).value == 'Directors Name') {
    		edit_director_name = i;
		  break;
	    }

	    if ($('id_number_'+i).value == '' || $('id_number_'+i).value == 'ID Number') {
    		id_number = i;
		  break;
	    }

	    if ($('address_'+i).value == '' || $('address_'+i).value == 'Physical Address') {
    		address = i;
		  break;
	    }

	    if ($('contact_number_'+i).value == '' || $('contact_number_'+i).value == 'Contact Number') {
    		contact_number = i;
		  break;
	    }


	    if ($('email_'+i).value == '' || $('email_'+i).value.search("@")==-1 || $('email_'+i).value.search("[.*]")==-1) {
    		email = i;
		  break;
	    }

    }

	var edit_director_name  = 'passed';

	if(document.getElementById(form).status.value == "")
	alert("Please Enter in a Status.");
	else if(document.getElementById(form).company_name.value == "")
	alert("Please Enter in the Company Name.");
	else if(document.getElementById(form).trading_as.value == "")
	alert("Please Enter the Trading As Field.");
	else if(document.getElementById(form).delivery_address.value == "")
	alert("Please Enter in the Physical Address.");
	else if(document.getElementById(form).same_address.checked != true && document.getElementById(form).postal_address.value == "") {
		alert("Please Enter the Postal Address.");
	}
	else if(document.getElementById(form).instore_manager.value == "")
	alert("Please Enter the Contact Person .");
	else if(document.getElementById(form).instore_contact.value == "")
	alert("Please Enter Contact Number.");
	else if(document.getElementById(form).instore_fax.value == "")
	alert("Please Enter the Fax Number .");
	else if(document.getElementById(form).instore_email.value == "")
	alert("Please Enter the Contact Email .");
	else if((document.getElementById(form).instore_email.value != "" && document.getElementById(form).instore_email.value.search("@")==-1) || (document.getElementById(form).instore_email.value != "" && document.getElementById(form).instore_email.value.search("[.*]"))==-1){
		alert("Please make sure that you fill in the Contact Email field correctly.");
	}
	else if(edit_director_name != 'passed')
	alert("Please enter the Name of Director: " + edit_director_name);
    else if(id_number != 'passed')
	alert("Please enter the ID number of Director: " + id_number);
    else if(address != 'passed')
	alert("Please enter the Address of Director: " + id_number);
    else if(contact_number != 'passed')
	alert("Please enter the Contact Number of Director: " + contact_number);
	else if(email != 'passed')
	alert("Please enter the Email of Director: " + email);
	else if(document.getElementById(form).province.value == "")
	alert("Please Select a Province.");
	else if(document.getElementById(form).region.value == "")
	alert("Please Select a Region.");
	else if(document.getElementById(form).login_email.value == "") {
	alert("Please Enter an Login E-mail Address");
	} else if ((document.getElementById(form).login_email.value.search("@")==-1) || (document.getElementById(form).login_email.value.search("[.*]")==-1)) {
	alert("Please make sure that you fill in the Login E-mail field correctly.");}
	else if(document.getElementById(form).login_password.value == "")
	alert("Please Enter in the Login Password.");
    else {
		document.getElementById(form).submit();
	}
}

function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}

function validate_add_product(form) {
	if(document.getElementById(form).status.value == "") 
		alert("Please choose a Status.");
	else if(document.getElementById(form).supplier_product_code.value == "") 
		alert("Please Enter the Supplier Product Code.");		
	else if(document.getElementById(form).name.value == "") 
		alert("Please Enter the Name.");
	else if(document.getElementById(form).brand.value == "") 
		alert("Please Enter the Brand.");
	else if((isNaN(document.getElementById(form).pack_size.value)) && (document.getElementById(form).pack_size.value != ""))
		alert("Please Enter the Pack Size Correctly (Numbers only).");
	else if((document.getElementById(form).unit_of_measure.value != "each") && ((document.getElementById(form).measure_amount.value == "") || (isNaN(document.getElementById(form).measure_amount.value))))
		alert("Please Enter the Measurement Amount (Numbers only).");
	else if(document.getElementById(form).unit_of_measure.value == "") 
		alert("Please Select the Unit Of Measure.");
	else if(document.getElementById(form).category.value == "") 
		alert("Please Enter the Category.");
	else if(document.getElementById(form).supplier.value == "") 
		alert("Please Enter the Supplier.");
	else if((document.getElementById(form).unit_cost.value == "") || (isNaN(document.getElementById(form).unit_cost.value))) 
		alert("Please Enter the Unit Cost Correctly.");
	else if(document.getElementById(form).special_status.checked == true) {                         
        if(document.getElementById(form).special_start.value == "") 
            alert("Please Enter the Special Start."); 
        else if(document.getElementById(form).special_end.value == "") 
            alert("Please Enter the Special End."); 	
            else {
                document.getElementById(form).submit();
        }
	}
    else {
			document.getElementById(form).submit();
    }
}

function check_out_of_stock(form){
	if(document.getElementById(form).out_of_stock.checked==false){
		document.getElementById(form).special_status.disabled=false;
		document.getElementById(form).special_start.disabled=false;
		document.getElementById(form).special_end.disabled=false;
		document.getElementById(form).description.disabled=false;
	}
	if(document.getElementById(form).special_status.checked==false){
		document.getElementById(form).special_status.disabled=false;
		document.getElementById(form).special_start.disabled=true;
		document.getElementById(form).special_end.disabled=true;
		document.getElementById(form).description.disabled=true;
	}
}
function validate_out_of_stock(form){
	if(document.getElementById(form).out_of_stock.checked==true){
		document.getElementById(form).special_status.disabled=true;
		document.getElementById(form).special_status.checked=false;
		document.getElementById(form).special_start.disabled=true;
		document.getElementById(form).special_end.disabled=true;
		document.getElementById(form).description.disabled=true;
		document.getElementById(form).special_start.value='';
		document.getElementById(form).special_end.value='';
	}else{
		document.getElementById(form).special_status.disabled=false;
		document.getElementById(form).special_start.disabled=true;
		document.getElementById(form).special_end.disabled=true;	
	}
}

function validate_comm_report(form) {
    if(document.getElementById(form).date_from.value == "" || document.getElementById(form).date_to.value == "") {
	   alert("Please Enter the Date Range Correctly.");
    }
    else{
	   document.getElementById(form).submit();
    }
}
