function $_(n) {
	if(!n) return false;
	if(!document.getElementById(n)) return false;
	return document.getElementById(n)
}

function loading_set(id) {
	var w = $_(id).offsetWidth + "px";
	var h = $_(id).offsetHeight + "px";

	$("#"+id+" div.loading").css({ width:w, height:h });
}

function loading_show(id) {
	$("#"+id).prepend("<div class=\"loading\"></div>");
	loading_set(id);

	$(window).resize(function() {
		loading_set(id);
	});
}

function scroll_top(id) {
	var s = bounds($_(id)).top - 20;
	scroll(0, s);
}

$(document).ready(function() {

});

function load_page(id, url) {
	$.ajax({
		type: "get",
		url: url,
		beforeSend: function(){
			loading_show(id);
		},
		success: function(html) {
			$("#"+id).html(html);
		}
	});
}

 function over(n) {
 document.getElementById('m'+n).className = 'act';
 }
 function out(n) {
 document.getElementById('m'+n).className = '';
 }
 function hide(el)
 {
  document.getElementById(el).style.display = 'none';
  document.body.style.backgroundColor = '#fff';
 }

 function show(el)
 {
  document.getElementById(el).style.display = 'block';
  document.body.style.backgroundColor = '#fff';
 }

 function showhide(el)
 {
  if (document.getElementById(el).style.display == 'none')
  document.getElementById(el).style.display = 'block';
 else
  document.getElementById(el).style.display = 'none'
 }

 function showl(el)
 {
  document.getElementById(el).style.display = 'list-item';
 }

var colact = '#7b7b7b'

function elmdis(var0,var1,var2) {
	if ($_(var0).checked == true) {
		if ($_(var1)) $_(var1).style.color = '#000';
		if ($_(var2)) $_(var2).disabled = false;
	} else {
		if ($_(var1)) $_(var1).style.color = colact;
		if ($_(var2)) $_(var2).disabled = true;
	}
}

function elm_disable(var0,var1,var2) {
	if ($_(var0).checked == true) {
		if ($_(var1)) $_(var1).style.color = colact;
		if ($_(var2)) $_(var2).disabled = true;
	}
}

function elmdis2(var0,var1,var2) {
	if ($_(var0).checked == true) {
		if ($_(var1)) $_(var1).disabled = false;
		if ($_(var2)) $_(var2).disabled = false;
	} else {
		if ($_(var1)) $_(var1).disabled = true;
		if ($_(var2)) $_(var2).disabled = true;
	}
}

function elm_disable2(var0,var1,var2) {
	if ($_(var0).checked == true) {
		if ($_(var1)) $_(var1).disabled = true;
		if ($_(var2)) $_(var2).disabled = true;
	}
}

/* travel form */
function tfpaid1(elem) {
	if (elem.value == '1') {
		if ($_('pay1')) $_('pay1').style.color = '#000';
		if ($_('pay3')) $_('pay3').style.color = '#000';
		if ($_('pay4')) $_('pay4').style.color = '#000';
		if ($_('pay2')) $_('pay2').disabled = false;
		if ($_('name13')) $_('name13').disabled = false;
		if ($_('name14')) $_('name14').disabled = false;
		if ($_('code31')) $_('code31').disabled = false;
		if ($_('code32')) $_('code32').disabled = false;
	} else {
		if ($_('pay1')) $_('pay1').style.color = colact;
		if ($_('pay3')) $_('pay3').style.color = colact;
		if ($_('pay4')) $_('pay4').style.color = colact;
		if ($_('pay2')) $_('pay2').disabled = true;
		if ($_('name13')) $_('name13').disabled = true;
		if ($_('name14')) $_('name14').disabled = true;
		if ($_('code31')) $_('code31').disabled = true;
		if ($_('code32')) $_('code32').disabled = true;
	}
}
function tfpaid2(elem) {
	if (elem.value == '2') {
		if ($_('pay6')) $_('pay6').style.color = '#000';
		if ($_('name15')) $_('name15').disabled = false;
		if ($_('name152')) $_('name152').disabled = false;
	} else {
		if ($_('pay6')) $_('pay6').style.color = colact;
		if ($_('name15')) $_('name15').disabled = true;
		if ($_('name152')) $_('name152').disabled = true;
	}
}

function hepaid(elem) {
 if (elem.checked == true) {
 document.getElementById('pay1').style.color = '#000';
 document.getElementById('pay3').style.color = '#000';
 document.getElementById('pay4').style.color = '#000';
 document.getElementById('pay2').disabled = false;
 document.getElementById('name13').disabled = false;
 document.getElementById('name14').disabled = false;
 document.getElementById('code31').disabled = false;
 document.getElementById('code32').disabled = false;
  } else {
 document.getElementById('pay1').style.color = colact;
 document.getElementById('pay3').style.color = colact;
 document.getElementById('pay4').style.color = colact;
 document.getElementById('pay2').disabled = true;
 document.getElementById('name13').disabled = true;
 document.getElementById('name14').disabled = true;
 document.getElementById('code31').disabled = true;
 document.getElementById('code32').disabled = true;
  }
}

function islive(el) {
 if (el == '1') {
 document.getElementById('wall1').disabled = false;
 document.getElementById('wall2').disabled = false;
 document.getElementById('wall3').disabled = false;
 document.getElementById('roof1').disabled = false;
 document.getElementById('roof2').disabled = false;
 document.getElementById('roof3').disabled = false;
 document.getElementById('roof4').disabled = false;
 document.getElementById('old1').disabled = false;
 document.getElementById('old2').disabled = false;

 document.getElementById('sum').disabled = false;
 document.getElementById('name').disabled = false;
 document.getElementById('code1').disabled = false;
 document.getElementById('code2').disabled = false;
 document.getElementById('adress').disabled = false;
 document.getElementById('adress2').disabled = false;
 document.getElementById('email').disabled = false;
 document.getElementById('phone').disabled = false;
 document.getElementById('index').disabled = false;
 document.getElementById('index2').disabled = false;

 document.getElementById('id1').style.color = '#000';
 document.getElementById('id2').style.color = '#000';
 document.getElementById('id3').style.color = '#000';
 document.getElementById('id4').style.color = '#000';
 document.getElementById('id5').style.color = '#000';
 document.getElementById('id6').style.color = '#000';
 document.getElementById('id7').style.color = '#000';
 document.getElementById('id8').style.color = '#000';
 document.getElementById('id9').style.color = '#000';
 document.getElementById('id10').style.color = '#000';
 document.getElementById('id11').style.color = '#000';
 document.getElementById('id12').style.color = '#000';
 document.getElementById('id13').style.color = '#000';
 document.getElementById('id14').style.color = '#000';
 document.getElementById('id15').style.color = '#000';
 document.getElementById('id16').style.color = '#000';
 document.getElementById('id17').style.color = '#000';
 document.getElementById('id18').style.color = '#000';
 document.getElementById('id19').style.color = '#000';
 document.getElementById('id20').style.color = '#000';
 document.getElementById('id21').style.color = '#000';
  } else {
 document.getElementById('wall1').disabled = true;
 document.getElementById('wall2').disabled = true;
 document.getElementById('wall3').disabled = true;
 document.getElementById('roof1').disabled = true;
 document.getElementById('roof2').disabled = true;
 document.getElementById('roof3').disabled = true;
 document.getElementById('roof4').disabled = true;
 document.getElementById('old1').disabled = true;
 document.getElementById('old2').disabled = true;

 document.getElementById('sum').disabled = true;
 document.getElementById('name').disabled = true;
 document.getElementById('code1').disabled = true;
 document.getElementById('code2').disabled = true;
 document.getElementById('adress').disabled = true;
 document.getElementById('adress2').disabled = true;
 document.getElementById('email').disabled = true;
 document.getElementById('phone').disabled = true;
 document.getElementById('index').disabled = true;
 document.getElementById('index2').disabled = true;

 document.getElementById('id1').style.color = colact;
 document.getElementById('id2').style.color = colact;
 document.getElementById('id3').style.color = colact;
 document.getElementById('id4').style.color = colact;
 document.getElementById('id5').style.color = colact;
 document.getElementById('id6').style.color = colact;
 document.getElementById('id7').style.color = colact;
 document.getElementById('id8').style.color = colact;
 document.getElementById('id9').style.color = colact;
 document.getElementById('id10').style.color = colact;
 document.getElementById('id11').style.color = colact;
 document.getElementById('id12').style.color = colact;
 document.getElementById('id13').style.color = colact;
 document.getElementById('id14').style.color = colact;
 document.getElementById('id15').style.color = colact;
 document.getElementById('id16').style.color = colact;
 document.getElementById('id17').style.color = colact;
 document.getElementById('id18').style.color = colact;
 document.getElementById('id19').style.color = colact;
 document.getElementById('id20').style.color = colact;
 document.getElementById('id21').style.color = colact;
  }
 }


function kpaid(elem) {
if (elem.value == '1') {
		if ($_('remont1txt')) $_('remont1txt').style.color = colact;
		if ($_('remont2txt')) $_('remont2txt').style.color = colact;
		if ($_('remont3txt')) $_('remont3txt').style.color = colact;
		if ($_('remont1')) $_('remont1').disabled = true;
		if ($_('remont2')) $_('remont2').disabled = true;

		if ($_('pay1')) $_('pay1').style.color = '#000';
		if ($_('pay2')) $_('pay2').disabled = false;
		if ($_('pay3')) $_('pay3').style.color = '#000';
		if ($_('name13')) $_('name13').disabled = false;
		if ($_('pay4')) $_('pay4').style.color = '#000';
		if ($_('name14')) $_('name14').disabled = false;
		if ($_('code31')) $_('code31').disabled = false;
		if ($_('code32')) $_('code32').disabled = false;

		if ($_('pay6')) $_('pay6').style.color = colact;
		if ($_('name15')) $_('name15').disabled = true;
		if ($_('name16')) $_('name16').disabled = true;
	}

	if (elem.value == '2') {
		if ($_('remont1txt')) $_('remont1txt').style.color = colact;
		if ($_('remont2txt')) $_('remont2txt').style.color = colact;
		if ($_('remont3txt')) $_('remont3txt').style.color = colact;
		if ($_('remont1')) $_('remont1').disabled = true;
		if ($_('remont2')) $_('remont2').disabled = true;

		if ($_('pay1')) $_('pay1').style.color = colact;
		if ($_('pay2')) $_('pay2').disabled = true;
		if ($_('pay3')) $_('pay3').style.color = colact;
		if ($_('name13')) $_('name13').disabled = true;
		if ($_('pay4')) $_('pay4').style.color = colact;
		if ($_('name14')) $_('name14').disabled = true;
		if ($_('code31')) $_('code31').disabled = true;
		if ($_('code32')) $_('code32').disabled = true;

		if ($_('pay6')) $_('pay6').style.color = '#000';
		if ($_('name15')) $_('name15').disabled = false;
		if ($_('name16')) $_('name16').disabled = false;
	}

	if (elem.value == '3') {
		if ($_('remont1txt')) $_('remont1txt').style.color = '#000';
		if ($_('remont2txt')) $_('remont2txt').style.color = '#000';
		if ($_('remont3txt')) $_('remont3txt').style.color = '#000';
		if ($_('remont1')) $_('remont1').disabled = false;
		if ($_('remont2')) $_('remont2').disabled = false;

		if ($_('pay1')) $_('pay1').style.color = colact;
		if ($_('pay2')) $_('pay2').disabled = true;
		if ($_('pay3')) $_('pay3').style.color = colact;
		if ($_('name13')) $_('name13').disabled = true;
		if ($_('pay4')) $_('pay4').style.color = colact;
		if ($_('name14')) $_('name14').disabled = true;
		if ($_('code31')) $_('code31').disabled = true;
		if ($_('code32')) $_('code32').disabled = true;

		if ($_('pay6')) $_('pay6').style.color = colact;
		if ($_('name15')) $_('name15').disabled = true;
		if ($_('name16')) $_('name16').disabled = true;
	}
}

function fpln(el) {
 if (el.value == '2') {
 document.getElementById('pln1').style.color = '#000';
 document.getElementById('pln2').style.color = '#000';
 document.getElementById('pln3').style.color = '#000';
 document.getElementById('pln4').style.color = '#000';
 document.getElementById('pln5').style.color = '#000';
 document.getElementById('pln6').style.color = '#000';
 document.getElementById('pln7').style.color = '#000';
 document.getElementById('pilnv').disabled = false;
 document.getElementById('pilnvpk').disabled = false;
 document.getElementById('pilnvnr').disabled = false;

 document.getElementById('year2').disabled = false;
 document.getElementById('date2').disabled = false;
 document.getElementById('month2').disabled = false;

 document.getElementById('year3').disabled = false;
 document.getElementById('date3').disabled = false;
 document.getElementById('month3').disabled = false;
 } else {
 document.getElementById('pln1').style.color = colact;
 document.getElementById('pln2').style.color = colact;
 document.getElementById('pln3').style.color = colact;
 document.getElementById('pln4').style.color = colact;
 document.getElementById('pln5').style.color = colact;
 document.getElementById('pln6').style.color = colact;
 document.getElementById('pln7').style.color = colact;
 document.getElementById('pilnv').disabled = true;
 document.getElementById('pilnvpk').disabled = true;
 document.getElementById('pilnvnr').disabled = true;

 document.getElementById('year2').disabled = true;
 document.getElementById('date2').disabled = true;
 document.getElementById('month2').disabled = true;

 document.getElementById('year3').disabled = true;
 document.getElementById('date3').disabled = true;
 document.getElementById('month3').disabled = true;
 }
}

function lostlist(n,m) {
n.style.display = 'none';
document.getElementById(m).style.display = 'block';
if (document.addEventListener) document.getElementById(m).style.display = 'table-row'; //W3C browsers
}

/* prja4em select v IE */
function hidesel() {
if (navigator.appName == 'Microsoft Internet Explorer') {
	if (document.getElementById('select'))
		document.getElementById('select').style.visibility = 'hidden';
	if (document.getElementById('iestfilter2')) {
		document.gatElementById('iestfilter2').style.backgroundImage = '/images/i/nav/select.jpg';
		document.getElementById('iestfilter2').style.backgroundPosition = '0 24px';
		document.getElementById('iestfilter2').style.backgroundRepeat = 'no-repeat';
	}
 }
}
function showsel() {
if (navigator.appName == 'Microsoft Internet Explorer') {
if (document.getElementById('select'))
	document.getElementById('select').style.visibility = 'visible';
if (document.getElementById('iestfilter2'))
	document.getElementById('iestfilter2').style.backgroundImage = '';
 }
}

/* iestades search */
function shcity(obj, el) {/* show/hide ul with cities */
  if (document.getElementById(el) && document.getElementById(el).style.display == 'none') {
  document.getElementById(el).style.display = 'block';
  obj.className = 'citact';
 } else {
	if (document.getElementById(el))
		document.getElementById(el).style.display = 'none'
  obj.className = '';}
}
function dinnav(el) {
new Ajax.Updater('divfilter','./?divfilter&ccID=' + el,{evalScripts:true})
}

/* iestades search gloria */
var prevel = 'li1982';
function cities(el) {
document.getElementById(el).style.color = '#000';        /* change active element color*/
document.getElementById(prevel).style.color = '#ba122b'; /* change prev active element color */
prevel = el;                                             /* modify perv element id */
}
function cities2() {
document.getElementById(prevel).parentNode.style.display = 'none'; /* prev active element parentnode display none */
}
/* iestades search fortuna */
var prevel3 = 'li5501';
function cities5(el) {
document.getElementById(el).style.color = '#000';
document.getElementById(prevel3).style.color = '#ba122b';
prevel3 = el;
}
function cities4() {
document.getElementById(prevel3).parentNode.style.display = 'none';
}

var prevel2 = 'li1982';
function cities3(el) {
document.getElementById(el).style.color = '#000';
document.getElementById(prevel2).style.color = '#ba122b';
prevel2 = el;
}

function isNumber(evnt) {
	if (!(evnt.keyCode >= 48 && evnt.keyCode <= 57 || evnt.keyCode == 8 || evnt.keyCode == 9 || evnt.keyCode == 37 || evnt.keyCode == 39 || evnt.keyCode == 46 || evnt.keyCode == 13))
		evnt.returnValue = false;
}

function isPrice(el) {
var reg=/\d+.\d{0,2}/
 result=reg.exec(el.value);
 el.value = result;
}

/* check 'celojuma veids' fields - enable/disable select fields */
function travelcalc(el) {
 if ('2' == el)
  document.getElementById('ctaktive').style.display = 'block';
 else
  document.getElementById('ctaktive').style.display = 'none';

 if ('3' == el)
  document.getElementById('ctsport').style.display = 'block';
 else
  document.getElementById('ctsport').style.display = 'none';

}

/* clear element value */
function clrvalue(el) {
document.getElementById(el).value = '';
}

/* kasko owner=holder */
function kfOwnHold(el,o1,o2,o3,o4,h1,h2,h3,h4) {
if (el.checked == true) {
 document.getElementById(h1).value = document.getElementById(o1).value;
 document.getElementById(h2).value = document.getElementById(o2).value;
 document.getElementById(h3).value = document.getElementById(o3).value;
 document.getElementById(h4).value = document.getElementById(o4).value;
 }
else {
 document.getElementById(h1).value = '';
 document.getElementById(h2).value = '';
 document.getElementById(h3).value = '';
 document.getElementById(h4).value = '';
 }

}

var sinhro = {
	holderOwner: {
		owner:'holder',
		ownerpk:'holderpk',
		owneradr:'holderadr',
		ownerph:'holderph'
	},
	driverOwner: {
		owner: 'driver',
		ownerpk: 'driverpk',
		ownerph: 'driverph'
	},
	driverHolder: {
		holder: 'driver',
		holderpk: 'driverpk',
		holderph: 'driverph'
	}
}

function sinhronize(condition, values) {
	values = sinhro[values];
	if (condition && values) {
		for (i in values) {
			document.getElementById( values[i] ).value = document.getElementById( i ).value;
		}
	}
}

function formSubmit( actionObj, url ) {

	actionObj = $(actionObj);

	if ( actionObj.get(0).tagName.toLowerCase() == 'form') {
		var parentForm = actionObj;
	} else {
		var parentForm = actionObj.parents('form:first');
	}

	if (typeof url == 'undefined') {
		url = fixUrl(parentForm.get(0).action);
	} else {
		url = fixUrl( url );
	}
	
	var options = {
		beforeSubmit: function() {
			document.body.style.cursor = 'wait';
		},
		url : url,
		type: "POST",
		complete: function() {
			document.body.style.cursor = 'default';
		},
		success: function( responseText, statusText ) {

			allowAutoHide = false;

			var bodyStart = responseText.toLowerCase().indexOf("<body>");
			var bodyEnd = responseText.toLowerCase().indexOf("</body>");

			if (bodyStart > -1 && bodyEnd > -1)	{
				responseText = responseText.substring( bodyStart + 6, bodyEnd );
			}
			evalScriptsOnResponse( responseText );

			allowAutoHide = true;

		}
	};
	parentForm.ajaxSubmit(options);

	return false;

}

function setAction( action, force ) {

	if (typeof action == 'object' && action.tagName.toLowerCase() == 'a') {
		action.blur();
		var actionObj = action;
		action = action.href;
	}
	var url = fixUrl(action);
	if (lastAjaxUrl == url && !force ) return false;

	autoHide( null, 1 );
	allowAutoHide = false;
	if (typeof actionObj == 'object' && !force ) {
		$( actionObj ).addClass('disabled');
	}

	lastAjaxUrl = url;

	var options = {
		beforeSend: function() {
			document.body.style.cursor = 'wait';
		},
		url : url,
		type  : "GET",
		dataType: "text",
		complete: function() {
			document.body.style.cursor = 'default';
		},
		success: function( responseText, statusText ) {

			var bodyStart = responseText.toLowerCase().indexOf("<body>");
			var bodyEnd = responseText.toLowerCase().indexOf("</body>");

			if (bodyStart > -1 && bodyEnd > -1)	{
				responseText = responseText.substring( bodyStart + 6, bodyEnd );
			}

			evalScriptsOnResponse( responseText );

			allowAutoHide = true;

		}
	};
	$.ajax( options );
	return false;

}

function fixUrl( url ) {
	var url = url.replace(/ajax\.php$/, '');
	/*if (url == '') {
		var host = document.location.protocol + '//' + document.location.host;
		url = url.replace(host, '');
	}*/
	urls = url.split("?");
	url = urls[0];
	if (typeof urls[1] != 'undefined' && urls[1].length) {
		urls[1] = '?'+urls[1];
	} else {
		urls[1] = "";
	}
	url = url.replace(/\/$/, '');
	if (url != '') {
		url += '/';
	}
	//url += '/ajax.php' + urls[1];
	url += urls[1];
	return url;
}

function evalScriptsOnResponse( text ) {

	//var aObj = $("<div>"+text+"</div>");
	var scriptIndex = 0;
	var IWScripts = new Array();
	document.onIWRun = null;
	document.IWLoaded = true;

	/* It's Toooooo LONG! */
	/*aObj.find("script").each( function() {
		document.onIWComplete = null;
		eval( this.innerHTML );
		if (document.onIWComplete) {
			IWScripts[scriptIndex] = document.onIWComplete;
			scriptIndex++;
		}
	});*/

	/* remove all scripts */
	text = text.replace(/<(\/?)script/gi, "<$1script");
	var scriptStart = text.indexOf("<script");
	var scriptEnd = -1;
	var scriptBody = "";

	while(scriptStart > -1) {
		scriptEnd = text.indexOf("</script>")+9;
		scriptBody = text.substring(text.indexOf(">", scriptStart)+1, scriptEnd - 9);

		//reset collection function
		document.onIWComplete = null;
		try {
			eval( scriptBody );
		} catch (e) {
			window.console.log( e );
		}
		if (document.onIWComplete) {
			IWScripts[scriptIndex] = document.onIWComplete;
			scriptIndex++;
		}

		//new html without executed script;
		text = text.substring(0,scriptStart)+text.substring(scriptEnd, text.length);
		scriptStart = text.indexOf("<script");
	}

	if (typeof document.onIWRun == 'function') {
		document.onIWRun( text );
	}

	if (IWScripts.length) {
		for (var i = 0; i < IWScripts.length; i++) {
			try {
				IWScripts[i]( );
			} catch (e) {
				window.console.log( e );
			}
		}
	}

}

function moveContent( to, content ) {
	$('#'+to).html( content );
	//attachSubmit( to );
}

function addNgPerson( parentObj ) {
	var rows = $( parentObj ).find('table:first tr');
	if (rows.length <= 5) {
		var row = $(rows[rows.length - 1]).html();
		row = $( '<tr>'+row+'</tr>' );
		row.find('input').attr('value', '').removeClass('error');
		$( parentObj ).find('table:first').append( row );
		if (rows.length == 5) {
			$( parentObj ).find('#ng-add').hide();
		}
		$( parentObj ).find('#ng-remove').show();
	}
}

function removeNgPerson( parentObj ) {

	var rows = $( parentObj ).find('table:first tr');
	if (rows.length > 2) { //first row is header, second row is first inputs
		if (rows.length == 3) {
			$( parentObj ).find('#ng-remove').hide();
		}
		$( parentObj ).find('table:first tr:last').remove();
		$( parentObj ).find('#ng-add').show();
	}
}


/*---------------------------------------------------------- layers ----------------------------------------------------*/
var modal = {
	settings: {},

	init: function(_this, id, url, hash, data) {
		this.settings[id] = new this.fc(_this, id, url, hash, data);
		return this.settings[id];
	},

	add: function(_this, id, url, hash, data) {
		if (!$_(id)) {
			this.init(_this, id, url, hash, data).add();
		} else {
			var $win = $('#' + id);
			if ($win.css('display') == 'none') {
				if (hash && hash['cache'] && hash['cache'] == 1) {
					modal.show(id);
				} else {
					$win.remove();
					this.init(_this, id, url, hash, data).add();
				}
			} else {
				modal.remove(id);
			}
		}

		if (_this) _this.blur();
	},
	
	remove: function(id) {
		var win = this.settings[id];
		if (win) win.remove();
	},
	
	show: function(id) {
		var win = this.settings[id];
		if (win) win.show();
	},
	
	move: function(_this, obj) {
		if (_this && obj) {
			w = Math.floor(_this.offsetWidth / 2 - obj.offsetWidth / 2);
			$(obj).css({ marginLeft:w + 'px' });
		}
	}
};

/* constructor */
modal.fc = function(_this, id, url, hash, data) {
	this.id = id;
	this.opener = _this;
	this.url = url;
	this.html = '';
	this.data = data ? data : 0;
	this.scroll = 0;
	this.modal = 1;
	this.overlay = 1;
	this.view = 1;
	this.move = 0;
	this.close = 1;
	this.container = 'body';
	this.spacermove = 0;
	this.cache = 0;
	
	try {
		for (var i in hash) this[i] = hash[i];
	} catch(e) {
		alert(e);
	}
};

/* methods */
modal.fc.prototype = {
	add: function() {
		var self = this;
		
		$(this.opener).addClass('toggle-active');
		
		if (this.container == 'body') {
			if (!this.scroll) window.scroll(0, 0);
			
			$('body').append('<div id="' + this.id + '" class="modal"><table class="overlay' + (this.scroll ? ' overlay-scrollable' : '') + '"><tr><td id="' + this.id + '_overlay" class="overlay overlay-preloader"><table id="' + this.id + '_container" class="modal' + (this.view == 1 ? '' : this.view) + '"><tr><td class="modal-11 png"><div></div></td><td class="modal-12 pngscale"><div></div></td><td class="modal-13 png"><div></div></td></tr><tr><td class="modal-21 pngscale"><div></div></td><td class="modal-22 png">'+ (this.close == 1 ? '<div class="modal-close"><a class="png" href="#close" onclick="modal.remove(\'' + this.id + '\'); return false;"></a></div>' : '') + '<div class="modal-content"><div id="' + this.id + '_content"><div class="modal-preloader"></div></div></td><td class="modal-23 pngscale"><div></div></td></tr><tr><td class="modal-31 png"><div></div></td><td class="modal-32 pngscale"><div></div></td><td class="modal-33 png"><div></div></td></tr></table></td></tr></table>' + (this.overlay ? '<div class="overlay' + (this.overlay == 1 ? '' : this.overlay) + '"></div><iframe class="overlay"></iframe>' : '') + '</div>');
		} else {
			$(this.container).append('<div id="' + this.id + '" class="modal-bind' + (this.view == 1 ? '' : this.view) + '"><div class="modal-w"><div class="modal-spacer png"></div><table id="' + this.id + '_container" class="modal' + (this.view == 1 ? '' : this.view) + '"><tr><td class="modal-11 png"><div></div></td><td class="modal-12 pngscale"><div></div></td><td class="modal-13 png"><div></div></td></tr><tr><td class="modal-21 pngscale"><div></div></td><td class="modal-22"><div class="modal-content">' + (this.close == 1 ? '<div class="modal-close"><a class="png" href="#close" onclick="modal.remove(\'' + this.id + '\'); return false;"></a></div>' : '') + '<div id="' + this.id + '_content"><div class="modal-preloader"></div></div></td><td class="modal-23 pngscale"><div></div></td></tr><tr><td class="modal-31 png"><div></div></td><td class="modal-32 pngscale"><div></div></td><td class="modal-33 png"><div></div></td></tr></table></div></div>');
			if (this.overlay) $('body').append('<div id="' + this.id + '_overlay"><div class="overlay' + (this.overlay == 1 ? '' : this.overlay) + '"></div><iframe class="overlay' + (this.overlay == 1 ? '' : this.overlay) + '"></iframe></div>');
		}
		
		if (!this.modal) {
			self.docevnt = function(e){
				var target = e.srcElement || e.target;
				if (!toggle.ischild(target, self.opener) && !toggle.ischild(target, $_(self.id))) {
					self.remove();
				}
			};
			$(document).bind('click', self.docevnt);
		}
				
		if (this.url) {
			$.ajax({
				type: 'get',
				url: self.url,
				data: self.data,
				success: function(html) {
					var bodyStart = html.toLowerCase().indexOf("<body>");
					var bodyEnd = html.toLowerCase().indexOf("</body>");

					if (bodyStart > -1 && bodyEnd > -1)	{
						html = html.substring( bodyStart + 6, bodyEnd );
					}
				
					evalScriptsOnResponse(html);

					$('#' + self.id + '_overlay').removeClass('overlay-preloader');
					if (self.move) {
						modal.move(self.opener, $('#' + self.id + ' div.modal-w').get(0));
					}
				}
			});
		} else {
			$('#' + self.id + '_content').html(self.html);
			$('#' + self.id + '_overlay').removeClass('overlay-preloader');
		}
	},
	
	show: function() {
		var self = this;
		
		$(this.opener).addClass('toggle-active');
		$('#' + this.id).css({ display:'block' });
		
		if (this.container == 'body') {
			if (!this.scroll) window.scroll(0, 0);
		} else if (this.overlay) {
			$('body').append('<div id="' + this.id + '_overlay"><div class="overlay' + (this.overlay == 1 ? '' : this.overlay) + '"></div><iframe class="overlay"></iframe></div>');
		}
		
		if (!this.modal) $(document).bind('click', self.docevnt);
	},

	remove: function() {
		var self = this;
		
		$(document).unbind('click', self.docevnt);
		
		if (this.cache) {
			$('#' + this.id).css({ display:'none' });
		} else {
			$('#' + this.id).remove();
		}
		
		if (this.container != 'body' && this.overlay) $('#' + this.id + '_overlay').remove();
		
		$(this.opener).removeClass('toggle-active');
	}
};