//	Author:				Nyco Agung
//	Email:				nycoagung@starkcreations.com.au
//	Date:				17 January 2008
//	Copyright:			2008 - Nyco Agung - Stark Creations
//	Terms:				This file is not to be modified/reproduced in anyway without a written consent


<!-- javascript to show/hide subcat gallery -->
function jfunc_show_row(var_row_id, var_button){
	f = document.getElementById(var_row_id);
	b = document.getElementById(var_button);
	
	if(f.style.display == "none"){
		f.style.display = "";
		b.src = "images/button-minus.gif";
	}else{
		f.style.display = "none";
		b.src = "images/button-plus.gif";
	}
}

<!-- FUNCTION TO LOG PROJECT OUT -->
function jfunc_project_logout ()
{
    var message = "Do you want to Logout?";
    var return_value = confirm(message);
    if ( return_value == true )
        {
        document.location='index.php?var_next_action=logout';
        }
}

<!-- FUNCTION TO LOG CONTRACTOR OUT -->
function jfunc_contractor_logout ()
{
    var message = "Do you want to Logout?";
    var return_value = confirm(message);
    if ( return_value == true )
        {
        document.location='index.php?var_next_action=contractor_logout';
        }
}

<!-- FUNCTION TO LOG RE AGENT OUT -->
function jfunc_reagent_logout ()
{
    var message = "Do you want to Logout?";
    var return_value = confirm(message);
    if ( return_value == true )
        {
        document.location='index.php?var_next_action=reagent_logout';
        }
}

<!-- JAVASCRIPT TO ROLL IN TR BG -->
function jfunc_roll_tr_in(thisItem) { 
	thisItem.style.background="#f0f0f0";
} 
function jfunc_roll_tr_out(thisItem) { 
	thisItem.style.background=""; 
} 

<!-- FUNCTION TO WRITE POPUP CONFIRM --?>
function jfunc_popup_confirm(var_question, var_yes_address, var_no_address){
	var return_value = confirm(var_question);
	
	if(return_value == true){
		if(var_yes_address != ''){
			document.location = var_yes_address;	
		}else{
			document.location = 'admin.php';	
		}
	}else{
		if(var_no_address != ''){
			document.location = var_no_address;
		}else{
			document.location = 'admin.php';	
		}
	}
}

<!-- FUNCTION TO SHOW DIV CONTENTS -->
function jfunc_show_tabs(){
	var var_tabs = jfunc_show_tabs.arguments;
	var var_tabs_count = var_tabs.length;
	var var_tabs_selected = var_tabs[0];
	
	for(i = 0; i < var_tabs_count; i++){
		if(var_tabs[i] == var_tabs_selected){
			document.getElementById(var_tabs[i]).style.display = 'block';
		}else{
			document.getElementById(var_tabs[i]).style.display = 'none';
		}
	}		
}

<!-- FUNCTION TO CHANGE CLASS FOR TABS -->
function jfunc_hightlight_tab(var_tab){
	var linkList = document.getElementById("action_tabs_list").getElementsByTagName("a");
		for (i = 0; i < linkList.length; i++) {
			linkList[i].className = "";
		}
	var_tab.className = "current";
}

<!-- FUNCTION TO CHANGE TAB CLASS -->
function jfunc_change_tab(){
	var var_tabs = jfunc_change_tab.arguments;
	var var_tabs_count = var_tabs.length;
	var var_tabs_selected = var_tabs[0];
	
	for(i = 0; i < var_tabs_count; i++){
		document.getElementById(var_tabs[i]).className = "";
	}
	document.getElementById(var_tabs[0]).className = "current";
}

<!-- FUNCTION TO VALIDATE FORM -->
function jfunc_validate_form(){
	var error_message = '';
	var argv = jfunc_validate_form.arguments;
	var argv_count = argv.length;
	var thisform = argv[0];
	var thisurl = argv[1];
	var thisdiv = argv[2];
	
	for(var i = 3; i < argv_count; i+=3){
		if(document.getElementById(argv[i]).value == ""){
			error_message += '- '+document.getElementById(argv[i]).title+' is required\n';	
		
		}else{
			if(argv[i+1] == 'isSame' && document.getElementById(argv[i]).value != document.getElementById(argv[i+2]).value){
				error_message='- '+document.getElementById(argv[i]).title + " must be the same as "+document.getElementById(argv[i+2]).title+"\n";
			}else if(argv[i+1] == 'isEmail'){
				email_contain = document.getElementById(argv[i]).value.indexOf('@');
				if(email_contain < 1 || email_contain == ((document.getElementById(argv[i]).value.length) - 1)){
					error_message='- '+document.getElementById(argv[i]).title + " must contain an email address\n";
				}
				
			}else if(argv[i+1] == 'isNum' && isNaN(document.getElementById(argv[i]).value)){
				error_message='- '+document.getElementById(argv[i]).title + " must contain a number\n";
			}
		}
	}
	
	if(error_message != ""){
		alert(error_message);
		return false;
	}else{
		jfunc_submitform(thisform, thisdiv, thisurl);	
	}
}

<!-- FUNCTION TO VALIDATE FIELDS -->
function jfunc_validate_fields(){
	var error_message = '';
	var argv = jfunc_validate_fields.arguments;
	var argv_count = argv.length;
	var thispagefrm = document.forms[argv[0]];
	var thisbutton = document.getElementById(argv[1]);
	for(var i = 2; i < argv_count; i+=3){
		
		if(document.getElementById(argv[i]).value == ""){
			error_message += '- '+document.getElementById(argv[i]).title+' is required\n';	
		
		}else{
			if(argv[i+1] == 'isSame' && document.getElementById(argv[i]).value != document.getElementById(argv[i+2]).value){
				error_message='- '+document.getElementById(argv[i]).title + " must be the same as "+document.getElementById(argv[i+2]).title+"\n";
			}else if(argv[i+1] == 'isEmail'){
				email_contain = document.getElementById(argv[i]).value.indexOf('@');
				if(email_contain < 1 || email_contain == ((document.getElementById(argv[i]).value.length) - 1)){
					error_message='- '+document.getElementById(argv[i]).title + " must contain an email address\n";
				}
				
			}else if(argv[i+1] == 'isNum' && isNaN(document.getElementById(argv[i]).value)){
				error_message='- '+document.getElementById(argv[i]).title + " must contain a number\n";
			}
		}
	}
	
	if(error_message != ""){
		alert(error_message);
		return false;
	}else{
		thisbutton.disabled = true; 
		thisbutton.value = "Processing..."; 
		thispagefrm.submit();	
	}
}

<!-- FUNCTION TO DYNAMICALLY CREATE ITEMS -->
function jfunc_more_fields(var_field, var_write)
{
	var counter = 0;
	counter++;
	var newFields = document.getElementById(var_field).cloneNode(true);
	newFields.id = '';
	newFields.style.display = 'block';
	var newField = newFields.childNodes;
	for (var i=0;i<newField.length;i++)
	{
		var theName = newField[i].name
		if (theName)
			newField[i].name = theName + counter;
	}
	var insertHere = document.getElementById(var_write);
	insertHere.parentNode.insertBefore(newFields,insertHere);
}

function addEvent(elm, evType, fn, useCapture)
{
if(elm.addEventListener)
  {
  elm.addEventListener(evType, fn, useCapture);
  return true;
  }
else if (elm.attachEvent)
  {
  var r = elm.attachEvent('on' + evType, fn);
  return r;
  }
else
  {
  elm['on' + evType] = fn;
  }
}

function jfunc_limit_tablecreation(var_thisitem, var_field, var_action, var_limit, var_add_field, var_div_write){
	var_limit = var_limit + 1;
	var_hidden_field = document.getElementById(var_field);
	var_hidden_field_value = parseFloat(document.getElementById(var_field).value);
	if(var_action == "add"){
		if(var_hidden_field_value >= var_limit){
			alert('A maximum of '+var_limit+' items can be added at once.');
			return false;
		}else{
			var_hidden_field.value = var_hidden_field_value+1;
			jfunc_more_fields(var_add_field, var_div_write);
		}
	}else if(var_action == "remove"){
		if(var_hidden_field_value - 1 <=0){
			return false;
		}else{
			var_hidden_field.value = var_hidden_field_value-1;
			var_thisitem.parentNode.parentNode.parentNode.parentNode.parentNode.removeChild(var_thisitem.parentNode.parentNode.parentNode.parentNode);
		}
	}	
}

<!-- FUNCTION TO SUBMIT ACTION FORM -->
function jfunc_submit_action_form(var_form_used, var_action){
	if(document.forms[var_form_used].boxchecked.value==0){
		alert('Please make a selection from the list to '+var_action);
	}else{
		jfunc_set_next_action(var_form_used, var_action);
	}
}

<!-- FUNCTION TO SET NEXT ACTION -->
function jfunc_set_next_action(var_form, next_action){
	var thispagefrm = document.forms[var_form];
	thispagefrm.var_next_action.value = next_action;
	
	if(next_action == "delete"){
		var message = "Are you sure you want to delete the selected item(s)?\n\nTHIS ACTION IS NOT REVERSEABLE.\n\nAre you sure you want to continue?";
		var return_value = confirm(message);
		if ( return_value == true ){
			thispagefrm.submit();
		}else{
			return false;	
		}
	}else{
		thispagefrm.submit();	
	}
}


<!-- FUNCTION TO CHECK ALL CHECKBOXES -->
function jfunc_check_checkbox_all(checkobj, value)
{
	formobj = checkobj.form;
	for (var i = 0; i < formobj.elements.length; i++)
	{
		elm = formobj.elements[i];
		if (elm.type == "checkbox" && elm.id == value)
		{
			elm.checked = checkobj.checked;
		}
	}
	jfunc_check_checkbox_checked(checkobj, value)
}

<!-- FUNCTION TO CHECK IF CHECK BOXES ARE CHECKED -->
function jfunc_check_checkbox_checked(checkobj, value){
	formobj = checkobj.form;
	var box_checked = 0;
	for( var i = 0; i < formobj.elements.length; i++){
		elm = formobj.elements[i];
		if (elm.type == "checkbox" && elm.id == value && elm.checked){
			box_checked = box_checked + 1;
		}else if(elm.type == "radio" && elm.id == value && elm.checked){
			box_checked = box_checked + 1;
		}
	}

	if(box_checked > 0){
		formobj.boxchecked.value = 1;	
	}else{
		formobj.boxchecked.value = 0;	
	}
}

//FUNCTION TO SUBMIT FILES IN AJAX
function startCallback(var_div) {
	document.getElementById(var_div).innerHTML="<div align=\"center\"><img src=\"images/loading_content.gif\" alt=\"Loading\"></div>";	
	return true;
}

function completeCallback(response) {
	// make something useful after (onComplete)
	document.getElementById('div_Images').innerHTML = response;
}
AIM = {

    frame : function(c) {

        var n = 'f' + Math.floor(Math.random() * 99999);
        var d = document.createElement('DIV');
        d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
        document.body.appendChild(d);

        var i = document.getElementById(n);
        if (c && typeof(c.onComplete) == 'function') {
            i.onComplete = c.onComplete;
        }

        return n;
    },

    form : function(f, name) {
        f.setAttribute('target', name);
    },

    submit : function(f, c) {
        AIM.form(f, AIM.frame(c));
        if (c && typeof(c.onStart) == 'function') {
            return c.onStart();
        } else {
            return true;
        }
    },

    loaded : function(id) {
        var i = document.getElementById(id);
        if (i.contentDocument) {
            var d = i.contentDocument;
        } else if (i.contentWindow) {
            var d = i.contentWindow.document;
        } else {
            var d = window.frames[id].document;
        }
        if (d.location.href == "about:blank") {
            return;
        }

        if (typeof(i.onComplete) == 'function') {
            i.onComplete(d.body.innerHTML);
        }
    }

}


//FUNCTION TO SUBMIT FORM IN AJAX
function jfunc_submitform(var_form, var_div, var_targetfile){
	var params = Form.serialize($(var_form));
	new Ajax.Updater(var_div, var_targetfile, {asynchronous:true, parameters:params});
	document.getElementById(var_div).innerHTML="<div align=\"center\"><img src=\"images/loading_content.gif\" alt=\"Loading\"></div>";
}

//FUNCTION TO LOAD PAGE IN AJAX
var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function jfunc_showpage(url, containerid){
	
	var page_request = false
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
		catch (e){}
		}
	}
	else
		return false
		document.getElementById(containerid).innerHTML="<div align=\"center\"><img src=\"images/loading_content.gif\" alt=\"Loading\"></div>";
		page_request.onreadystatechange=function(){
		loadpage(page_request, containerid)
	}
	
	if (bustcachevar) //if bust caching of external page
		bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
		page_request.open('GET', url+bustcacheparameter, true)
		page_request.send(null)
	}

function loadpage(page_request, containerid){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
	document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
	if (!document.getElementById)
		return
		for (i=0; i<arguments.length; i++){
			var file=arguments[i]
			var fileref=""
			if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
				if (file.indexOf(".js")!=-1){ //If object is a js file
					fileref=document.createElement('script')
					fileref.setAttribute("type","text/javascript");
					fileref.setAttribute("src", file);
				}
			else if (file.indexOf(".css")!=-1){ //If object is a css file
				fileref=document.createElement("link")
				fileref.setAttribute("rel", "stylesheet");
				fileref.setAttribute("type", "text/css");
				fileref.setAttribute("href", file);
			}
		}
		if (fileref!=""){
			document.getElementsByTagName("head").item(0).appendChild(fileref)
			loadedobjects+=file+" " //Remember this object as being already added to page
		}
	}
}

<!-- FUNCTION TO REMOVE IE BOX ON CHECKBOX -->
function addEvent(elm, evType, fn, useCapture){
	if(elm.addEventListener){
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}else if (elm.attachEvent){
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}else{
		elm['on' + evType] = fn;
	}
}
function jfunc_remove_ie_checkbox_border(){
	var el = document.getElementsByTagName("input");
	for (i=0;i<el.length;i++){
		var type = el[i].getAttribute("type");
		if((type=="checkbox")||(type=="radio")){
			el[i].style.border = "none";
		}
	}
}
addEvent(window, 'load', jfunc_remove_ie_checkbox_border, false);
