var initf = function()
{
/******************************/
//special for #com\d position
//alert(location.href);
//var r = location.href.match(/(\#com\d+)/);
var r = window.location.href.match(/(\#com\d+)/);
if(r)
{
	var el = document.createElement('a');
	el.href = r[1];
	el = $$('body')[0].appendChild(el);
//	el.innerHTML = 'test';
	el.click();

}
/******************************/


	var forms = document.getElementsByTagName('form');
	window.forForms = {
		'audio.artist.edit':1,
		'audio.album.edit':1,
		'blog.create':1,
		'blog.edit':1,
		'blog.editpost':1,
		'blog.post':1,
		'blog.post.comment':1,
		'blog.post.edit':1,
		'blog.posts.edit':1,
		'blog.post.reply':1,
		'blogposts.sendfriend':1,
		'comments.edit':1,
		'custom.add':1,
		'custom.edit':1,
		'files.edit':1,
		'files.sendfriend':1,
		'galery.images.createalbum':1,
		'galery.images.editalbum':1,
		'galery.post.comment':1,
		'login':1,
		'password.retrieve':1,
		'profile.file.edit':1,
		'profile.user.edit':1,
		'profile.user.editpassword':1,
		'recommendation.add':1,
		'recommendation.edit':1,
		'register':1,
		'search':1
	};

	$A(forms).each(function(form)
	{
		//    Event.observe(form, 'submit', formHandler, false);
		f = null;
		if(forForms[form.id])
		{
			switch(form.id)
			{
				case 'audio.artist.edit':
				case 'audio.album.edit':
				case 'blog.create':
				case 'blog.edit':
				case 'blog.editpost':
				case 'blog.post':
				case 'blog.posts.edit':
				case 'blog.post.edit':
				case 'blog.post.comment':
				case 'blog.post.reply':
				case 'blogposts.sendfriend':
				case 'comments.edit':
				case 'custom.add':
				case 'custom.edit':
				case 'files.edit':
				case 'files.sendfriend':
				case 'galery.post.comment':
				case 'galery.post.reply':
				case 'galery.images.createalbum':
				case 'galery.images.editalbum':
				case 'login':
				case 'password.retrieve':
				case 'profile.user.edit':
				case 'profile.user.editpassword':
				case 'profile.file.edit':
				case 'recommendation.add':
				case 'recommendation.edit':
				case 'register':
				case 'search':

				var f = new Validation(form.id,{stopOnFirst:true,
				immediate : false,
				//****Submit Events Handler******//
				onFormValidate: submitForm
				});
				if(form.elements['Submit'])
					$(form.elements['Submit']).enable();
					//alert(form.id);
				break;

				
//				var f = new Validation(form.id,{stopOnFirst:true,
//				immediate : false,
//				//****Submit Events Handler******//
//				onFormValidate: submitForm
//				});
//				if(form.elements['Submit'])
//					$(form.elements['Submit']).enable();
//				break;

				default:
				break;
			}
			window.forForms[form.id] = f;

			Event.observe(form, 'reset', resetForm.bindAsEventListener(form, form));
		}
	});
	Validation.add('validate-date', 'Please use this date format: yyyy-mm-dd. For example 2006-03-17 for March 17, 2006.', function(v, element) {
		if(!Validation.get('IsEmpty').test(v)) {
			var upper = 31;
			if(/^(\d{4})\-(\d{2})\-(\d{2})$/.test(v)) { // mmddyy /^(\d{2})\/(\d{2})\/(\d{2})$/ <-- original regexp w/ slashes
				if(RegExp.$2 == '02') upper = 29;
				if((RegExp.$2 <= 12) && (RegExp.$3 <= upper)) {
					return true;
				} else {
					return false;
				}
			} else {
				return false;
			}
		} else {
			return true;
		}
	});
	Validation.add('passconfirm', 'Password and Confirm field have different value.<br>Please retype', function(value, element) {
		frm = element.form;
		var ri = Form.getInputs(frm, '', 'password')[0];
		var ri2 = Form.getInputs(frm, '', 'password_confirm')[0];
		var r = ri.getValue();
		var r2 = ri2.getValue();
		return r == r2;
	});

	Validation.add('passcheck', 'Too short pass', function(value, element) {

		return element.value.length > 5;
	});
	Validation.add('unique-field', 'Значение уже существует', function(value, element) {
					frm = element.form;
					if(element.getValue())
					{
						res = getRequest({'form': frm.id, 'vals': Form.serialize(frm), 'check': 1, 'element_name': element.name});
						return !res.exist;
					}
					else return true;
				});

}

if(window.addEventListener){ // Mozilla, Netscape, Firefox
	window.addEventListener('load', initf, false);
} else { // IE
	window.attachEvent('onload', initf);
}

//function getRequest(params)
//{
//   var req = new Subsys_JsHttpRequest_Js();
//   req.caching = false;
//
//   req.open('POST', './forms.php', false);
//   req.send(params);
//   if(req.responseText)
//   {
//      alert(req.responseText);
//   }
//
//   return req.responseJS;
//}


function getRequest(params, callback)
{
	var req = new Subsys_JsHttpRequest_Js('UTF-8');
	req.caching = false;

	if(callback)
	ass = true;
	else ass = false;

	if(callback)
	req.onreadystatechange = callback.bind(this, req);

	req.open('POST', '/forms.php', ass);
	req.send(params);
	if(req.responseText)
	alert('Debug: ' + req.responseText);
	return req.responseJS;
}


function shortAction(param, norefresh){
	var resp = getRequest(param);
	if(resp.goLocation)
	{
		document.location.href=resp.goLocation;
	}
	else if(!norefresh)
	{
		window.location.reload(1);
	}
}


function fillForm(form, data)
{
	$A(Form.getElements(form)).each(function(el)
	{
		if(typeof(data[el.name]) != 'undefined')
		SetElementValue(el, data[el.name]);
	});
}

function SetElementValue(el, newVal)
{
	if(newVal == undefined)
		newVal = '';
	switch(el.type)
	{
		case 'text':
		case 'select-one':
		case 'select-multiple':
		case 'password':
		case 'hidden':
		case 'button':
		case 'submit':
		el.value = newVal;
		break;

		case 'radio':
		case 'checkbox':
		if(newVal)
		{
			if($A(newVal).indexOf(el.value) >= 0)
			el.checked = true;
			else if (!newVal.pop)
			el.checked = true;
		}

		break;
		default:

		if(newVal && el.tagName == 'TEXTAREA')
		el.value = newVal;
		break;
	}
}

function isCheckboxArray(form, name)
{
	if (form[name].length>1)
	return true;
	else return false;
}

var form_submitted = false;
function submitForm(result, frm)
{
	if(result && !form_submitted)
	{
	  form_submitted = true;
		$A(frm.elements).each(
		function(el){
			if(el.type == 'submit')
					el.disable();
		}
		);
		var res = getRequest({'form': frm.id, 'vals': Form.serialize(frm)});
		var oncomplete = $(frm).readAttribute('oncomplete');
		if(frm.elements['Submit'])
			$(frm.elements['Submit']).enable();
		if(oncomplete)
		{
			var f = function(result, frm, oncomplete){
				eval(oncomplete);
			};
			f = f.bind(this, res, frm, oncomplete);
			f(res, frm, oncomplete);
		} else
		document.location.href = document.location.href;
		
	}
}

function SetCookie(cookieName,cookieValue,nDays) {
	var today = new Date();
	var expire = new Date();
	if (nDays==null || nDays==0) nDays=1;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName+"="+escape(cookieValue)
	+ ";expires="+expire.toGMTString();
}


function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);

	if (begin == -1) {
		begin = dc.indexOf(prefix);

		if (begin != 0)
		return null;
	} else
	begin += 2;

	var end = document.cookie.indexOf(";", begin);

	if (end == -1)
	end = dc.length;

	return unescape(dc.substring(begin + prefix.length, end));
}

function editForm(id, formid)
{
	var vals = $H({'getData':1, 'form': formid, 'id': id}).toQueryString();
	var data = getRequest({'form': 'getData', 'vals': vals });
//	data.row['Submit'] = 'Save';
	if(data && data.row)
		fillForm($(formid), data.row);
}

function resetForm(ev, form)
{
	fillForm(form,{'Submit': 'Add'});
	forForms[form.id].reset();

	$A(Form.getElements(form)).each(function(el)
	{
		if(el.type == 'hidden')
		el.value = '';
	});
}

function deleteForm(id, mode)
{
	var vals = $H({'form': mode, 'id': id}).toQueryString();
	var data = getRequest({'form': 'deleteAction',
	'vals': vals });
	document.location.href = document.location.href;
}


//videoFromMCE
//audioFromMCE

var initf = function(){

	$$('img.videoFromMCE').each(function(el){
		var src = $(el).readAttribute('title');
		showVideo(src, el);
	});

	$$('img.audioFromMCE').each(function(el){
		var src = $(el).readAttribute('title');
		showAudio(src, el);
	});
}

function showVideo(url, el, img){
	var dt = new Date();
	var uniq = dt.getDate() + '' + dt.getMonth() + '' + dt.getFullYear() + '' + dt.getHours() + '' + dt.getMinutes() + '' + dt.getSeconds() + '' + dt.getMilliseconds();

	//		html = '<div class="flash_preview" id="playergsvc'+uniq+'"></div>		<script>		var sogsvc = new SWFObject("/users/mediaplayer.swf","playergsvc'+uniq+'","400","400","7");					sogsvc.addParam("allowfullscreen","true");					sogsvc.addVariable("file","'+src+'");					sogsvc.addVariable("autostart","false");					sogsvc.addVariable("repeat","false");					sogsvc.addVariable("showdigits","true");					sogsvc.addVariable("showicons","true");					sogsvc.addVariable("showvolume","true");					sogsvc.write("playergsvc'+uniq+'");</script>';
	$(el).replace('<span class="flash_preview" id="playergsvc'+uniq+'"></span>');


	var sogsvc = new SWFObject("/users/mediaplayer.swf","playergsvc"+uniq,"400","400","7");
	sogsvc.addVariable("image","/" + img);
	sogsvc.addParam("allowfullscreen","true");
	sogsvc.addVariable("file",'/'+url);
	sogsvc.addVariable("autostart","false");
	sogsvc.addVariable("repeat","false");
	sogsvc.addVariable("showdigits","true");
	sogsvc.addVariable("showicons","true");
	sogsvc.addVariable("showvolume","true");
	sogsvc.write("playergsvc"+uniq);
}

function showAudio_old(url, el){
	$(el).replace("<object width='400' height='60' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0'><param name='movie' value='/flash/audioplayer.swf' /><param name='bgcolor' value='#FFFFFF' /><param name='flashvars' value='song="+url+"&bit=128' /><embed src='/flash/audioplayer.swf' quality=high width='400' height='60'	swliveconnect=true type='application/x-shockwave-flash'	pluginspage='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' flashvars='song="+url+"&bit=128' bgcolor='#FFFFFF' /></embed></object>");
}

function showAudio(url, el){
	$(el).replace("<object width='400' height='60' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0'><param name='movie' value='/flash/play.swf' /><param name='bgcolor' value='#FFFFFF' /><param name='flashvars' value='path_xml=/xml.php"+url+"' /><embed src='/flash/play.swf' quality=high width='400' height='60'	swliveconnect=true type='application/x-shockwave-flash'	pluginspage='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' flashvars='path_xml=/xml.php"+url+"' bgcolor='#FFFFFF' /></embed></object>");
}

if(window.addEventListener){ // Mozilla, Netscape, Firefox
	window.addEventListener('load', initf, false);
} else { // IE
	window.attachEvent('onload', initf);
}


function loadcities(cid){
	var cities = getRequest({'form':'getcities', 'cid':cid});
	cities = $A(cities.data);

	var cn = $('city_id');
	while(cn.options.length)
	cn.options.remove(0)


	for(var i=0; i < cities.length; i++)
	{
		cn.add(new Option(cities[i]['name'], cities[i]['cities_id']));
	}
}

function fillcities(country){
	getRequest({'form':'getcities', 'countryid': country}, function(req){
		if (req && req.readyState == 4){
			var cities = req.responseJS;
			var s = $('cityid');
			while(s.length > 1)
			s.options[1] = null;
			$A(cities.data).each(function(el){
				var opt = new Option(el['name'], el['cities_id'], false, false);
				s.options[s.options.length] = opt;
			});

		}
	});
}
function formSubmitted(el){
	setTimeout(function(el){el.disable();}.bind(this, el), 1);
}

function doLogin(res){
	if(parseInt(res['result'])> 0) location.href=location.href; 
		else
		 $('login_error').show();
}

if(Prototype.Browser.Gecko)
HTMLElement.prototype.click = function() {
var evt = this.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
this.dispatchEvent(evt);
}
