var root = "/";

function isEmail(string) {

   if (!string) return false;
   var iChars = "*|,\":<>[]{}`\';()&$#%";

   for (var i = 0; i < string.length; i++) {
      if (iChars.indexOf(string.charAt(i)) != -1)
         return false;
   }
   var at = "@";
   if ( string.indexOf(at) == -1 ) {
   		return false;
	}
   return true;
}                      

// This is to be used in ajax call to toggle a value and update the table cell
function toggle(tableName, columnName, columnValA, columnValB, IDcolumnName, IDcolumnVal, elementId) {

var opt = {
		method: 'post',
		postBody: 'table_name='+tableName+'&col_name='+columnName+'&col_vala='+columnValA+'&col_valb='+columnValB+'&id_col_name='+IDcolumnName+'&id='+IDcolumnVal,
		onSuccess: function(t) {
			if (t.responseText != columnValA && t.responseText != columnValB) {
				alert(t.responseText + 'ss');
			}
			else {
				//alert(t.responseText);
				//alert(document.getElementbyId(elementId).innerHTML + "---");
				document.getElementById(elementId).innerHTML=t.responseText;
				$(elementId).className = 'tg_' + t.responseText;
			}
		},
		on404: function(t) {
			alert('Error 404: location "' + t.statusText + '" was not found. ');
		},
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		} 
	}

	new Ajax.Request( root + 'lib/toggle.php', opt);
}

function isUsed(tableName, columnName, value, idColumnName, idValue) {
	var isUsed = true;
	var opt = {
		method: 'post',
		postBody: 'table_name='+tableName+'&col_name='+columnName+'&value='+value+'&id_col_name='+idColumnName+'&id_value='+idValue,
		asynchronous: false,
		onSuccess: function(t) {
			//alert(t.responseText);
			if (t.responseText != "true") {
				isUsed = false;
			}
		},
		on404: function(t) {
			alert('Error 404: location "' + t.statusText + '" was not found. ');
		},
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		} 
	}
	
	new Ajax.Request( root + 'ajax/is_used.php', opt);
	return isUsed;
}

function confirmSubmit(msg)
{
	if ( typeof(msg)=="undefined" ) 
		msg = "Are you sure you wish to continue?";
		
	var agree=confirm(msg);
	if (agree)
		return true ;
	else
		return false ;
}

/**
 * Copyright @ dllead software inc. BSD License. 
 */
var floatbox = {
		dsettings: {
			targetid: '',
			anchorele: '',
			orientation: 2,
			position: [10, 30],
			hideafter: 0,
			fadeduration: [500, 500]
	  },

		positiontarget:function($target, settings){
			var fixedsupport=!document.all || document.all && document.compatMode=="CSS1Compat" && window.XMLHttpRequest //not IE or IE7+ browsers in standards mode
			var posoptions={position:fixedsupport? 'fixed':'absolute', visibility:'visible'}
			if (settings.fadeduration[0]>0) {
				posoptions.opacity=0;
			}

			if (settings.anchorele != '') {
				var p = $('#' + settings.anchorele).position();
				posoptions['left']= p.left + ($('#' + settings.anchorele).width());
				posoptions['top']= p.top;
			}
			else {
				posoptions[(/^[13]$/.test(settings.orientation))? 'left' : 'right']=settings.position[0];
				posoptions[(/^[12]$/.test(settings.orientation))? 'top' : 'bottom']=settings.position[1];
			}

			if (document.all && !window.XMLHttpRequest) //loose check for IE6 and below
				posoptions.width=$target.width() //IE6- seems to require an explicit width on a DIV
			$target.css(posoptions)
			/*if (!fixedsupport){
				this.keepfixed($target, settings)
				var evtstr='scroll.' + settings.targetid + ' resize.'+settings.targetid
				jQuery(window).bind(evtstr, function(){floatbox.keepfixed($target, settings)})
			}*/
			this._show($target, settings, fixedsupport)
			if (settings.hideafter>0){ //if hide timer enabled
				setTimeout(function(){
					floatbox.hide(settings.targetid)
				}, settings.hideafter+settings.fadeduration[0])
			}
		},

		keepfixed:function($target, settings){
			var $window=jQuery(window)
			var is1or3=/^[13]$/.test(settings.orientation)
			var is1or2=/^[12]$/.test(settings.orientation)
			var x=$window.scrollLeft() + (is1or3? settings.position[0] : $window.width()-$target.outerWidth()-settings.position[0])
			var y=$window.scrollTop() + (is1or2? settings.position[1] : $window.height()-$target.outerHeight()-settings.position[1])
			$target.css({left:x+'px', top:y+'px'})
		},

		_show:function($target, settings){
			if (settings.fadeduration[0]>0) 
				$target.show().animate({opacity:1}, settings.fadeduration[0]);
			else
				$target.show();
		},

		show: function(targetid) {
			var $target=jQuery('#'+targetid);
			$target.show();
		},
		hide:function(targetid){ 
			var $target=jQuery('#'+targetid);
			if ($target.css('display')=='none') 
				return; 
			var settings=this.settings; 
			if (settings.fadeduration[1]>0) 
				$target.animate({opacity:0}, settings.fadeduration[1], function(){$target.hide()});
			else
				$target.hide();
			var evtstr='scroll.' + settings.targetid + ' resize.'+settings.targetid;
			jQuery(window).unbind(evtstr);
		},
		

		init:function(options){
			var settings=jQuery.extend(settings, this.dsettings, options); 
			this.settings=settings;
			var $target=$('#'+settings.targetid); 
			floatbox.positiontarget($target, settings); 
		}
	}
