
if(typeof console == "undefined")
	{
	console = new Object;
	console.log = function(){};
	}


isIE = false;
isIE6 = false;
isOpera = false;
isKonqueror = false;
isSafari = false;
isMozilla = false;

function browser_check()
	{
	if(navigator.userAgent.indexOf("MSIE")!=-1)
		{
		isIE = true;
		if(navigator.appVersion.indexOf("MSIE 6.0")!=-1)
			{
			isIE6 = true;
			}
		}
	else if(navigator.userAgent.indexOf("Konqueror")!=-1)
		{
		isKonqueror = true;
		}
	else if(navigator.userAgent.indexOf("Opera")!=-1)
		{
		isOpera = true;
		}
	else if(navigator.userAgent.indexOf("Safari")!=-1)
		{
		isSafari = true;
		}
	//has to be the last since many of the browsers have Mozilla into their string
	//else if(navigator.userAgent.indexOf("Mozilla")!=-1)
	else
		{
		isMozilla = true;
		}
	}

browser_check();

function setSelRange(textarea_elem, selStart, selEnd) 
	{
	if (textarea_elem.setSelectionRange)
		{
		textarea_elem.focus();
		textarea_elem.setSelectionRange(selStart, selEnd);
		}
		else if (textarea_elem.createTextRange) 
			{
			var range = textarea_elem.createTextRange();
			range.collapse(true);
			range.moveEnd('character', selEnd);
			range.moveStart('character', selStart);
			range.select();
			}
	}

function getSelRange(textarea_elem)
	{
	if (textarea_elem.selectionStart)
		{
		//return new Array(textarea_elem.selectionStart,textarea_elem.selectionEnd);
		if(textarea_elem.selectionStart==textarea_elem.selectionEnd)
			{
			//return new Array(0,0);
			return false;
			}
			else
				{
				return new Array(textarea_elem.selectionStart,textarea_elem.selectionEnd);
				}
		}
		else if (document.selection) 
			{
			try
				{
				var range = document.selection.createRange();
				var stored_range = range.duplicate();
				stored_range.moveToElementText( textarea_elem );
				stored_range.setEndPoint( 'EndToEnd', range );
				return new Array(stored_range.text.length - range.text.length,stored_range.text.length);
				}
			catch(e)//there is no selection
				{
				//return array(0,0);
				return false;
				}
			}
	}

function getSelection(textarea_elem)
	{
	if(textarea_elem.selectionStart)
		{
		//return textarea_elem.value.substr(textarea_elem.selectionStart, textarea_elem.selectionEnd - textarea_elem.selectionStart);
		return textarea_elem.value.substr(textarea_elem.selectionStart, textarea_elem.selectionEnd);
		}
		else if(document.selection)
			{
			return document.selection.createRange().text
			}
	}


function getPosition(textarea_elem)
	{
	/*
	if(textarea_elem.selectionStart)
		{
		return textarea_elem.selectionStart
		}
		else if(textarea_elem.createTextRange)
			{
			//var range = textarea_elem.createTextRange();
			//alert(range.caretPos);
			alert(textarea_elem.caretPos);
			}
	*/
	return getSelRange(textarea_elem)[0];
	}



/**
modified code based on code from http://www.phpbb.com
*/
function getPosition2(txtarea)
	{
	// simple Gecko/Opera way
	if(txtarea.selectionStart || txtarea.selectionStart == 0)
		{
		return txtarea.selectionStart;
		}
	// dirty and slow IE way
	else if(document.selection)
		{
		// get current selection
		var range = document.selection.createRange();

		// a new selection of the whole textarea
		var range_all = document.body.createTextRange();
		range_all.moveToElementText(txtarea);
		
		// calculate selection start point by moving beginning of range_all to beginning of range
		var sel_start;
		for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
			{
			range_all.moveStart('character', 1);
			}
		return sel_start;
		}
	}


var wsf_path = '';
var wsf_arg_separator = '';
var wsf_index = '';
var wsf_session = '';
var wsf_session_name = '';
var wsf_absolute = '';

function url(url_obj)
	{
	if(arguments[1]==true)
		{
		var str = wsf_absolute;
		}
		else
			{
			var str = '';
			}
	str += wsf_path;
	if(wsf_session)
		{
		str += wsf_session_name + wsf_arg_separator + wsf_session + wsf_arg_separator;
		}
	for(el in url_obj)
		{
		if(!url_obj[el])
			{
			url_obj[el] = 0;
			}
		str += el + wsf_arg_separator + url_obj[el] + wsf_arg_separator;
		}
	str += wsf_index;
	return str;
	}

function url_parse(url_str)
	{
	var url_obj = {};
	//alert(url_str.match(new RegExp('^('+wsf_absolute+').*')));
	// neshto/asdasd/sdfsdf
	//http://192.168.1.119:8081/cms/source2/p/content/c/manage_pages_group/a/chmod/id/4/index.html
	///cms/source2/http:/0/192.168.1.119:8081/cms/source2/p/content/c/manage_pages_group/a/chmod/id/4/0/v/5/mainform_submit/1/index.html
	url_str = url_str.replace(new RegExp('^('+wsf_absolute+')'),'');
	url_str = url_str.replace(new RegExp('^('+wsf_path+')'),'');
	url_str = url_str.replace(new RegExp('('+wsf_arg_separator+wsf_index+')$'),'');
	var url_elements = url_str.split(wsf_arg_separator);
	for(var aa=0;aa<url_elements.length;aa=aa+2)
		{
		url_obj[url_elements[aa]] = url_elements[aa+1];
		}
	return url_obj;
	}

function getX( element )
	{
	var ret = 0;
	while( element!=null)
		{
		ret += element.offsetLeft;
		element = element.offsetParent;
		}
	return ret;
	}


function getY( element )
	{
	var ret = 0;
	while( element!=null)
		{
		ret += element.offsetTop;
		element = element.offsetParent;
		}
	return ret;
	}







var timeout_id = 0;

function show_email_to_friend(elem)
	{
	if(timeout_id)
		{
		clearTimeout(timeout_id);
		}
	var email_box = $('email_box');
	var xcoord = getX(elem) + 0;
	var ycoord = getY(elem) - 114;
	//email_box.style.position = 'absolute';
	email_box.style.top = ycoord + 'px';
	email_box.style.left = xcoord + 'px';
	email_box.style.visibility = 'visible';
	email_box.style.display = 'block';
	}

function hide_email_to_friend_callback()
	{
	var email_box = $('email_box');
	email_box.style.visibility = 'hidden';
	email_box.style.display = 'none';
	$('email_box_message').innerHTML = '';
	}

function hide_email_to_friend()
	{
	if(timeout_id)
		{
		clearTimeout(timeout_id);
		}
	timeout_id = setTimeout(hide_email_to_friend_callback,'500');
	}

function email_to_friend()
	{
	new Ajax.Request(url({p:'content',c:'email_to_friend',a:'main',url:Base64.encode(window.location.href),your_name:$F('your_name'),friends_email:$F('friends_email')}),
	{
		method:'get',
		onSuccess: function(transport){
			var response = transport.responseText.evalJSON();
			if(response.code=='0')
				{
				$('email_box_message').innerHTML = '<span class="email_box_failure">' + response.message + '</span>';
				}
				else
					{
					$('email_box_message').innerHTML = '<span class="email_box_success">' + response.message + '</span>';
					$('your_name').value = '';
					$('friends_email').value = '';
					hide_email_to_friend();
					}
		},
		onFailure: function(){ $('email_box_message').innerHTML = '<span class="email_box_failure">A server error occured.</span>' }
	});
 
	}

window.onload = function() {
    var links = document.getElementsByTagName('a');
    for (var i=0;i < links.length;i++) {
        if (links[i].rel == 'external') {
            links[i].onclick = function() {
                window.open(this.href);
                return false;
            };
        }
    }
};





var temp_global_object;

function dropdown(relative_elem,dropdown_elem)
	{
	this.relative_elem = relative_elem;
	this.dropdown_elem = dropdown_elem;
	this.x_offset = arguments[2]?arguments[2]:0;
	this.y_offset = arguments[3]?arguments[3]:0;
	this.show = dropdown_show;
	this.hide = dropdown_hide;
	this.hide_callback = dropdown_hide_callback;
	this.init = dropdown_init;
	this.init();
	}

dropdown.prototype.timeout_id = false;
dropdown.prototype.timeout = 500;

function dropdown_init()
	{
	var xcoord = getX(this.relative_elem) + this.x_offset;
	var ycoord = getY(this.relative_elem) + this.y_offset;
	this.dropdown_elem.style.position = 'absolute';
	this.dropdown_elem.style.top = ycoord + 'px';
	this.dropdown_elem.style.left = xcoord + 'px';
	this.dropdown_elem.style.visibility = 'hidden';
	this.dropdown_elem.style.display = 'none';
	}

function dropdown_show()
	{
	if(this.timeout_id)
		{
		clearTimeout(this.timeout_id);
		}
	this.dropdown_elem.style.visibility = 'visible';
	this.dropdown_elem.style.display = 'block';
	}

function dropdown_hide()
	{
	if(this.timeout_id)
		{
		clearTimeout(this.timeout_id);
		}
	temp_global_object = this;
	this.timeout_id = setTimeout(this.hide_callback,this.timeout);
	//delete temp_global_object;
	}

function dropdown_hide_callback()
	{
	var object=temp_global_object;
	object.dropdown_elem.style.visibility='hidden';
	object.dropdown_elem.style.display='none';
	//temp_global_object = null;
	}



function process_tag(button_elem,textarea_id)
	{
	var textarea_elem = $(textarea_id);
	var tag_name = button_elem.id.split('_')[1];
	var open_tag = '[' + tag_name + ']';
	var close_tag ='[/' + tag_name + ']';
	
	var selection_pos = getSelRange(textarea_elem);
	//alert(getPosition(textarea_elem));
	//alert(getCaretPosition(textarea_elem));
	switch(tag_name)
		{
		case 'url':
			if(selection_pos)
				{
				var url_str = window.prompt('URL of the link:','http://');
				open_tag = '[' + tag_name + '="' + url_str + '"]';
				var sel_start = textarea_elem.value.length + open_tag.length;
				var sel_end = sel_start + url_str.length;
				textarea_elem.value = textarea_elem.value.substr(0,selection_pos[0]) + open_tag + textarea_elem.value.substring(selection_pos[0],selection_pos[1]) + close_tag + textarea_elem.value.substr(selection_pos[1]);
				setSelRange(textarea_elem,selection_pos[0]+open_tag.length,selection_pos[1]+open_tag.length);
				}
				else
					{
					var url_str = window.prompt('URL of the link:','http://');
					open_tag = '[' + tag_name + '="' + url_str + '"]';
					var sel_start = textarea_elem.value.length + open_tag.length;
					var sel_end = sel_start + url_str.length;
					textarea_elem.value = textarea_elem.value + open_tag + url_str + close_tag;
					textarea_elem.focus();
					setSelRange(textarea_elem,sel_start,sel_end);
					}
			break;
		case 'color':
			var color = button_elem.value;
			open_tag = '[color="' + color + '"]';
			close_tag = '[/color]';
			if(selection_pos)
				{
				textarea_elem.value = textarea_elem.value.substr(0,selection_pos[0]) + open_tag + textarea_elem.value.substring(selection_pos[0],selection_pos[1]) + close_tag + textarea_elem.value.substr(selection_pos[1]);
				setSelRange(textarea_elem,selection_pos[0]+open_tag.length,selection_pos[1]+open_tag.length);
				}
				else
					{
					var sel_start = textarea_elem.value.length + open_tag.length;
					var sel_end = sel_start;
					textarea_elem.value = textarea_elem.value + open_tag + close_tag;
					textarea_elem.focus();
					setSelRange(textarea_elem,sel_start,sel_end);
					}
			break;
		default:
			if(selection_pos)
				{
				textarea_elem.value = textarea_elem.value.substr(0,selection_pos[0]) + open_tag + textarea_elem.value.substring(selection_pos[0],selection_pos[1]) + close_tag + textarea_elem.value.substr(selection_pos[1]);
				setSelRange(textarea_elem,selection_pos[0]+open_tag.length,selection_pos[1]+open_tag.length);
				}
				else
					{
					var sel_start = textarea_elem.value.length + open_tag.length;
					var sel_end = sel_start;
					textarea_elem.value = textarea_elem.value + open_tag + close_tag;
					textarea_elem.focus();
					setSelRange(textarea_elem,sel_start,sel_end);
					}
		}

	}

var first_load = true;

/* used in every template */
	function load_regions()
		{
		if(first_load)
			{
			first_load = false;
			}
			else
				{
				selected_region = null;
				}
		
		var region = $('geo_region');
		
		for(aa=region.length;aa>=1;aa--)
			{
			region.options[aa] = null;
			}
		
		if($F('geo_country_fips'))
			{
			region.options[0] = null;
			region.options[0] = new Option('Please Select','',true,true);
			//var url_str = url(new Array('c','array_server'),new Array('a','get_country_regions'),new Array('id',$F('geo_country_id_profile')));
			var url_str = url({p:'geodata',c:'server',a:'get_regions',geo_country_fips:$F('geo_country_fips')});
			new Ajax.Request(url_str, {
			method: 'get',
			onSuccess: function(transport) {
				aa = 1;
				//alert(transport.responseText);
				eval('var data_obj='+transport.responseText);
				for(el in data_obj)
					{
					if(el==selected_region)
						{
						region.options[aa++] = new Option(data_obj[el],el,true,true);
						}
						else
							{
							region.options[aa++] = new Option(data_obj[el],el,false,false);
							}
					}
			}
			});
			}
			else
				{
				region.options[0] = null;
				region.options[0] = new Option('Select Country','',true,true);
				selected_region = null;
				}
		}