// JavaScript Document
var standarderror	= 'Couldn\'t communicate with server, please try again later.<br />If the problem persists contact the site administrator.';
var divarray 		= new Array();
var divcount 		= 0; 
$(document).ready(function(){
	$(".close_notification").click( 
		function () {
			$(this).hide();
			$(this).parent().fadeTo('fast', 0, function () { 
				$(this).slideUp('fast');
			});
			return false;
		}
	);	
	$('#modal_close').click(function(){$.unblockUI()});
});
function waitElement(which,what){
	$('#tooltip').hide();
	if(!$('#'+which).is(':visible'))$('#'+which).show();
	var pos		= {
		align: 		$('#'+which).css("float"),
		position: 	$('#'+which).css("position"),
		left:		$('#'+which).css("left"),
		top: 		$('#'+which).css("top"),
		right:		$('#'+which).css("right"),
		bottom:		$('#'+which).css("bottom")
	}
	var style = '';
	if(pos.align!='none' && pos.align!='auto')style += 'float:'+pos.align+';';
	if(pos.position!='none' && pos.position!='auto')style += 'position:'+pos.position+';';
	if(pos.left!='none' && pos.left!='auto')style += 'left:'+pos.left+';';
	if(pos.top!='none' && pos.top!='auto')style += 'top:'+pos.top+';';
	if(pos.right!='none' && pos.right!='auto')style += 'right:'+pos.right+';';
	if(pos.bottom!='none' && pos.bottom!='auto')style += 'bottom:'+pos.bottom+';';
	divarray[which] = new Object();
	divarray[which].element = $('#'+which).clone(true);
	divarray[which].count = divcount++;
	if(!what)what = "wait_element";
	wait = "<div class='"+what+"' id='WAIT_"+divarray[which].count+"' align='absmiddle' style='"+style+"' />";
	$('#'+which).replaceWith(wait);
}
function restoreElement(which) {
	if(divarray[which]){
		$('#WAIT_'+divarray[which].count).replaceWith(divarray[which].element);
		delete divarray[which];
	}
}
function waitOverlay(selector){
	var h		= $(selector).outerHeight();
	var w		= $(selector).outerWidth();
	var offset	= $(selector).offset();
	$('#waitoverlay').remove();
	$('body').append('<div id="waitoverlay" style="width:'+w+'px;height:'+h+'px;left:'+offset.left+'px;top:'+offset.top+'px;"></div>');
}
function removeWaitOverlay(){
	$('#waitoverlay').fadeOut('slow');	
}
function clearerrors(){
	$('#jpopup_message').hide();	
}
function popup(div,title,message){
	$('#'+div+' #modal_confirm').remove();
	$('#'+div+' #modal_title').empty().append(title);
	$('#'+div+' #modal_message').empty().append(message);
	width	= $('#'+div).outerWidth();
	$.blockUI({message: $('#'+div),css: {top: '100px',width:width,borderWidth: 0,cursor: 'default'},overlayCSS: {opacity: 0.7}});
}
function jpop(div,title,message,align,decay){	
	$('#'+div).jpopup({title: title,message: message,align: align,decay:decay});
}
function confirmBox(div,title,msg,callback,param){
	
	if($('#'+div+' #modal_confirm').length){
		$('#'+div+' #modal_confirm').remove();
	}
	var cb	= false;
	$('#'+div+' .tar').append('<button id="modal_confirm" class="button2" type="button" value="Ok" onclick="$.unblockUI({onUnblock: function(){'+callback+'(\''+param+'\');}});">Ok</button>');
	$('#'+div+' #modal_title').empty().append(title);
	$('#'+div+' #modal_message').empty().append(msg);
	width	= $('#'+div).outerWidth();
	$.blockUI({message: $('#'+div),
			   css: {borderWidth: 0,cursor: 'default',width: width},
			   overlayCSS: {opacity:0.7}
	});
}
function checkNumber(id,title,msg,align,decay,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	if(isNaN($.trim($('#'+id).val()))){
		$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});
		$('#'+id).focus();
		if(sdiv)scrollDiv(id);
		return false;
	}
	return true;
}
function checkInteger(id,title,msg,align,decay,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	var v = $.trim($('#'+id).val());
	if(!IsNumeric(v) || v%1 != 0 ){
		$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});	
		$('#'+id).focus();
		if(sdiv)scrollDiv(id);
		return false;
	}
	return true;
}
function checkNotBlankInteger(id,title,msg,align,decay,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	if($.trim($('#'+id).val())!==''){
		return checkInteger(id,title,msg,align,decay);	
	}
	$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});
	$('#'+id).focus();
	if(sdiv)scrollDiv(id);
	return false;
}
function checkNotBlankNumber(id,title,msg,align,decay,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	if($.trim($('#'+id).val())!==''){
		return checkNumber(id,title,msg,align,decay,sdiv);	
	}
	$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});
	$('#'+id).focus();
	if(sdiv)scrollDiv(id);
	return false;
}
function checkString(id,title,msg,align,decay,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	if($.trim($('#'+id).val())==''){
		$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});	
		$('#'+id).focus();
		if(sdiv)scrollDiv(id);
		return false;
	}
	return true;
}
function checkStringLength(id,title,msg,align,decay,size,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	if($.trim($('#'+id).val()).length<size){
		$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});	
		$('#'+id).focus();
		if(sdiv)scrollDiv(id);
		return false;
	}
	return true;
}
function checkEqual(id1,id2,title,msg,align,decay,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	if($.trim($('#'+id1).val())!=$.trim($('#'+id2).val())){
		$('#'+id2).jpopup({title: title,message: msg,align: align,decay:decay});	
		$('#'+id2).focus();
		if(sdiv)scrollDiv(id);
		return false;
	}
	return true;	
}
function checkStringLengthExact(id,title,msg,align,decay,size,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	var lgt = $.trim($('#'+id).val()).length;
	if(lgt!=size){
		$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});	
		$('#'+id).focus();
		if(sdiv)scrollDiv(id);
		return false;
	}
	return true;
}
function checkValidEmail(id,title,msg,align,decay,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	if(!checkValidEmailNoError($.trim($('#'+id).val()))){
		$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});	
		$('#'+id).focus();
		if(sdiv)scrollDiv(id);
		return false;
	}
	return true;
}
function checkValidEmailNoError(string){
	var reg	= /^[A-Z0-9._%\-]+@[A-Z0-9.\-_%]+\.[A-Z]{2,4}$/i;
	return reg.test(string);
}
function checkTime(id,title,msg,align,decay){
	var reg	= /^((1[0-2])|([1-9])):[0-5][0-9](am|pm)$/i;
	var e = $.trim($('#'+id).val());
	if(!reg.test(e)){
		$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});	
		$('#'+id).focus();
		return false;
	}
	return true;
}
function checkTimeConsecutive(id,id2,title,msg,align,decay){
	var time1 = $.trim($('#'+id).val());
	var t1 = {
		hour:	time1.substring(0,time1.indexOf(':')),
		minute: time1.substring(time1.indexOf(':')+1,time1.length-2),
		ap:		time1.substring(time1.length-2,time1.length)
	}
	var time2 = $.trim($('#'+id2).val());
	var t2 = {
		hour:	time2.substring(0,time2.indexOf(':')),
		minute: time2.substring(time2.indexOf(':')+1,time2.length-2),
		ap:		time2.substring(time2.length-2,time2.length)
	}
	if(t1.hour==12){
		if(t1.ap=='am')t1.hour = 0;	
	}else if(t1.ap=='pm'){
		t1.hour += Number(12);	
	}
	if(t2.hour==12){
		if(t2.ap=='am')t2.hour = 0;	
	}else if(t2.ap=='pm'){
		t2.hour += Number(12);	
	}
	var tdate1 = new Date();
	tdate1.setHours(t1.hour);
	tdate1.setMinutes(t1.minute);
	var tdate2 = new Date();
	tdate2.setHours(t2.hour);
	tdate2.setMinutes(t2.minute);
	if(tdate1>=tdate2){
		$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});	
		$('#'+id).focus();
		return false;
	}
	return true;
}
function checkSelect(id,title,msg,align,decay,sdiv){
	if(typeof(sdiv)=='undefined')sdiv = true;
	var v	= $.trim($('#'+id).val());
	if(v==0 || v==''){
		$('#'+id).jpopup({title: title,message: msg,align: align,decay:decay});	
		$('#'+id).focus();
		if(sdiv)scrollDiv(id);
		return false;
	}
	return true;
}
function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}
function scrollDiv(id){
	var offs = $('#'+id).offset();
	window.scrollTo(0,offs.top-100);
}
function urldecode (str) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // +      input by: Ratheous
    // +   improved by: Orlando
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +      bugfixed by: Rob
    // %        note 1: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // %        note 2: Please be aware that this function expects to decode from UTF-8 encoded strings, as found on
    // %        note 2: pages served as UTF-8
    // *     example 1: urldecode('Kevin+van+Zonneveld%21');
    // *     returns 1: 'Kevin van Zonneveld!'
    // *     example 2: urldecode('http%3A%2F%2Fkevin.vanzonneveld.net%2F');
    // *     returns 2: 'http://kevin.vanzonneveld.net/'
    // *     example 3: urldecode('http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a');
    // *     returns 3: 'http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a'
    if(str)return decodeURIComponent(str.replace(/\+/g, '%20'));
	return '';
}
if(typeof(console)=='undefined'){
	var console = new Object();
	console.log	= function(msg){
		var op = console.recursmsg(msg);
		alert(op);
	}
	console.recursmsg = function(msg){
		var op = '';
		for(var i in msg){
			if(msg.hasOwnProperty(i)){
				if(typeof(msg[i])=='object'){
					op = op + '\n [ '+i+' ] => ';
					op = op + console.recursmsg(msg[i]);
				}else{
					op = op+'\n [ '+i+' ] '+msg[i];		
				}
			}
		}
		return op;
	}
}
/*
$(function ()
    {
    $.ajaxSetup
        ({
        xhr: function()
            {
            if ($.browser.msie)
                {
                return new ActiveXObject("Microsoft.XMLHTTP");
                }
            else
                {
                return new XMLHttpRequest();
                }
            }
        })
    });
*/
