/**
* edit_tool_utilities is meant to be a general function repository for
* edit_tools such as edit_simple, edit_calendar etc.
* These are functions which more than one edit tools needs.
**/


function get_element_position( html_id ){	
	var pos_id = "#" + html_id;
	var position = new Array();
	position['posX'] = Math.round($(pos_id).offset().left);
    position['posY'] = Math.round($(pos_id).offset().top);
	//alert( "Edit tool util: x:" + position['posX'] + " y:" + position['posY'] );
	return position;
}

function get_url_variable( key, query ) {
    var first = query.split("?");
    
    //alert( 'edit utils: ' + query );

	var vars = first[1].split("&");	
	for( var i = 0; i < vars.length; i++ ) { 
    	var pair = vars[i].split("=");    	
    	//alert('key found: ' + pair[0] + ' var found:' + pair[1] );
    	if (pair[0] == key) { 
      		return pair[1];
    	}
  	}  
  	//alert('Query Variable ' + key + ' not found');
  	return "var not found";
}//fun guv

function get_script_uri( query ){
	var parts = query.split("?");
	//alert("From edit tool util: " + parts[0] );
	return parts[0];
}//fun gsu

//Publisher now extracts and brings here the field_type
function extract_field_type( ){    
	my_ele = orig_element_id;	
	parts = my_ele.split('_');
	return parts[1];
}

function is_set( input_var ){
	//test for existence
	if( input_var == 'var not found' || input_var == undefined || input_var.length == 0 
			    || input_var == null || input_var == 'NaN' || input_var == 'undefined' ){
		return false;	
	}else{
		return true;
	}	
}

/**
 * Dumps a javascript array just like in php.
 * Does NOT work on json encoded arrays.
 */
function var_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;
}

/**This is not used and may be erased at some point
 * Function takes a json encoded array that looks so:
 *  $some_data[0]['column_name'] = 'city';
 *  $some_data[1]['column_name'] = 'state';
 *  $some_data[0]['city'] = 'Baltimore';
 *  $some_data[1]['city'] = 'Helsinki';
 *  .
 *  .
 *  $some_data[2]['state'] = 'Germany';
 *  $newanarray = json_encode($some_data);
 *  
 *  @param array result
 *  @return array columns
 */
function get_json_result_coumns( result ){
	var columns = new Array(); var index = 0;
	for( each in result ){
		if( result[each].column_name ){ columns[index] = result[each].column_name; }
		index++;
	}
	return columns;
}


function clear_input( input_name, defualt_text ){
  $input_value = document.getElementsByName( input_name )[0].value;
//  if( $input_value == defualt_text )
//  {
    document.getElementsByName( input_name )[0].value = '';
    return true;
//  }
}


function pressbutton(bt){
	if( is_set(bt) ){
		bt.value = "Please wait...";
		return true;
	}else{
		return false;
	}
}


function get_browser_type(){
	
	var browser = navigator.userAgent;
	
	return browser;
	
}//fun


function include(filename){
	var head = document.getElementsByTagName('head')[0];
	
	script = document.createElement('script');
	script.src = filename;
	script.type = 'text/javascript';
	
	head.appendChild(script)
}

//browser detecting code snippet copied from http://www.quirksmode.org/js/detect.html
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
//end browser detecting snippet


