
function collapse( itemname, imgId )
{
	var item = document.getElementById( itemname );
	if ( !item )
	{
		return false;
	}

	if ( item.className == "show" )
	{
		item.className = "hide";
		if ( imgId ) setImage( imgId, "/img/plus.png" );
	}
	else
	{
		item.className = "show";
		if ( imgId ) setImage( imgId, "/img/minus.png" );
	}

	return false;
}

function toggle(obj) {
    var el = document.getElementById(obj);
    if ( el.style.display != 'none' ) {
        el.style.display = 'none';
    }
    else {
        el.style.display = '';
    }
}

function setImage( imgId, imgPath )
{
	if ( !document.images ) return;
	var imgObj = document.getElementById( imgId, imgPath );
	if ( imgObj )
	{
		imgObj.src = imgPath;
	}
}

function checkReview() {
	var ret = false;
	var form_obj = document.getElementById( "review_form" );
	if ( form_obj ) {
		if ( form_obj.review ) {
			if ( form_obj.review.value.length == 0 ) {
				alert( "Пожалуйста, аргуметируйте Вашу оценку в поле \"Ваш комментарий\"" );
			}
			else {
				ret = true;
			}
		}
		else {
			alert( "Element 'review' not found" );
		}
	}
	else {
		alert( "Form not found" );
	}
	
	return ret;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/"+"; Domain=.freelance.ru";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function setCity() {
	if (select_obj = document.getElementById('city')) {
		eraseCookie('city');
		createCookie('city',select_obj.options[select_obj.selectedIndex].value,365);
		window.location.reload();
	}	
}

function resetCity() {
	if (select_obj = document.getElementById('city')) {
		eraseCookie('city');
		createCookie('city',0,365);
		window.location.reload();
	}	
}

function popup(file) {
	var options ="width=640,height=480,dependent=yes,alwaysRaised=yes,location=no,menubar=no,resizable=yes,status=no,titlebar=no,toolbar=no,scrollbars=yes";
	var win = window.open(file,"rulez",options);
	win.focus();

	return false;
}

function InverseMessages(form_id)
{
	var f = document.getElementById(form_id);
	if (!f)
	{
		alert('Form "' + form_id + '" not found');
	}
	else
	{
		var msgs = f.msgs;
		if (!msgs.length || msgs.length == 1)
		{
			msgs.checked = !msgs.checked;
		}
		else
		{
			for (var i=0; i < msgs.length; i++)
			{
				msgs[i].checked = !msgs[i].checked;
			}
		}
	}
}

function countLetters(src_id,dst_id,limit)
{
	var dst = $(dst_id);
	if (dst)
	{
		var src = $(src_id);
		if (src)
		{
			var len = src.value.length;
			if (len > limit)
			{
				src.value = src.value.substring(0, limit);
				dst.update( "<b style='color:red'>" + limit + " из " + limit + "</b>" );
			}
			else
			{
				dst.update(src.value.length + " из " + limit);
			}
		}
		else
		{
			alert("Объект " + dst_id + " не найден");
		}
	}
	else
	{
		alert("Объект " + src_id + " не найден");
	}
}

function good_time()
{
	var cT = new Date();
	hours = cT.getHours();  
	if ( hours >= 6 && hours <= 11 )  
	document.write("Доброе утро");  
	if ( hours >= 12 && hours <= 17 )  
	document.write("Добрый день");  
	if (hours >= 18 && hours <= 23)  
	document.write("Добрый вечер");  
	if (hours >= 0 && hours <= 5)  
	document.write("Доброй ночи");  
}

function rmReview(reviewId)
{
	if (confirm("Удалить этот отзыв?"))
	{
		var url = '/responder/?cmd=rmReview&id=' + reviewId;
		new Ajax.Request(url,
			{
				method: 'get',
				onSuccess: function(transport)
				{
					alert(transport.responseText);
					window.location.reload();
				},
				onFailure: function(transport)
				{
					alert(transport.status + " " + transport.statusText);
				}
			}
		);
	}
}

function addLoadEvents(func)
{	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
		window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}
}

addOverSelector = function() 
{ 
	if (document.all&&document.getElementById) 
	{ 
		navRoot = document.getElementById("rss_list"); 
		for (i=0; i<navRoot.childNodes.length; i++) 
		{ 
			node = navRoot.childNodes[i]; 
			if (node.nodeName=="LI") 
			{ 
				node.onmouseover=function() { this.className+=" over"; } 
				node.onmouseout=function() { this.className=this.className.replace (" over", ""); } 
			} 
		} 
	}
}

addLoadEvents(addOverSelector);	// run onLoad

// FLASH DETECT
//http://www.featureblend.com/license.txt
var FlashDetect=new function(){var self=this;self.installed=false;self.raw="";self.major=-1;self.minor=-1;self.revision=-1;self.revisionStr="";var activeXDetectRules=[{"name":"ShockwaveFlash.ShockwaveFlash.7","version":function(obj){return getActiveXVersion(obj);}},{"name":"ShockwaveFlash.ShockwaveFlash.6","version":function(obj){var version="6,0,21";try{obj.AllowScriptAccess="always";version=getActiveXVersion(obj);}catch(err){}
return version;}},{"name":"ShockwaveFlash.ShockwaveFlash","version":function(obj){return getActiveXVersion(obj);}}];var getActiveXVersion=function(activeXObj){var version=-1;try{version=activeXObj.GetVariable("$version");}catch(err){}
return version;};var getActiveXObject=function(name){var obj=-1;try{obj=new ActiveXObject(name);}catch(err){obj={activeXError:true};}
return obj;};var parseActiveXVersion=function(str){var versionArray=str.split(",");return{"raw":str,"major":parseInt(versionArray[0].split(" ")[1],10),"minor":parseInt(versionArray[1],10),"revision":parseInt(versionArray[2],10),"revisionStr":versionArray[2]};};var parseStandardVersion=function(str){var descParts=str.split(/ +/);var majorMinor=descParts[2].split(/\./);var revisionStr=descParts[3];return{"raw":str,"major":parseInt(majorMinor[0],10),"minor":parseInt(majorMinor[1],10),"revisionStr":revisionStr,"revision":parseRevisionStrToInt(revisionStr)};};var parseRevisionStrToInt=function(str){return parseInt(str.replace(/[a-zA-Z]/g,""),10)||self.revision;};self.majorAtLeast=function(version){return self.major>=version;};self.minorAtLeast=function(version){return self.minor>=version;};self.revisionAtLeast=function(version){return self.revision>=version;};self.versionAtLeast=function(major){var properties=[self.major,self.minor,self.revision];var len=Math.min(properties.length,arguments.length);for(i=0;i<len;i++){if(properties[i]>=arguments[i]){if(i+1<len&&properties[i]==arguments[i]){continue;}else{return true;}}else{return false;}}};self.FlashDetect=function(){if(navigator.plugins&&navigator.plugins.length>0){var type='application/x-shockwave-flash';var mimeTypes=navigator.mimeTypes;if(mimeTypes&&mimeTypes[type]&&mimeTypes[type].enabledPlugin&&mimeTypes[type].enabledPlugin.description){var version=mimeTypes[type].enabledPlugin.description;var versionObj=parseStandardVersion(version);self.raw=versionObj.raw;self.major=versionObj.major;self.minor=versionObj.minor;self.revisionStr=versionObj.revisionStr;self.revision=versionObj.revision;self.installed=true;}}else if(navigator.appVersion.indexOf("Mac")==-1&&window.execScript){var version=-1;for(var i=0;i<activeXDetectRules.length&&version==-1;i++){var obj=getActiveXObject(activeXDetectRules[i].name);if(!obj.activeXError){self.installed=true;version=activeXDetectRules[i].version(obj);if(version!=-1){var versionObj=parseActiveXVersion(version);self.raw=versionObj.raw;self.major=versionObj.major;self.minor=versionObj.minor;self.revision=versionObj.revision;self.revisionStr=versionObj.revisionStr;}}}}}();};FlashDetect.JS_RELEASE="1.0.4";

//RUN Active Content
//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
//AC_END

function logo_js() {
	if( typeof(FlashDetect) != 'undefined' && typeof(AC_FL_RunContent) != 'undefined' && FlashDetect.installed && FlashDetect.major > 7 )
	{ 
	AC_FL_RunContent(  'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','150','height','150','title','FreelanceLogo','src','/img/logo_freelance','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','/img/logo_freelance', 'wmode','transparent' );
	} else { document.write('<a href="/" class="logo"><h1>Freelance.Ru - дело мастера боится</h1></a>'); }
}

// SURVEY
/*
var Survey = {
	winW:false,
	winH:false,
	page:false,
	onLoad:function() {
		if(navigator.appName=='Microsoft Internet Explorer') return false;
		this.page = document.getElementsByTagName('body')[0];
		this.winW = 1024, this.winH = 768;
        if (parseInt(navigator.appVersion) > 3) {
            if (navigator.appName == "Netscape") {
                this.winW = window.innerWidth;
                this.winH = window.innerHeight;
            }
            if (navigator.appName.indexOf("Microsoft") != -1) {
                this.winW = document.documentElement.clientWidth;
                this.winH = document.documentElement.clientHeight;
            }
			if(navigator.appName == "Opera") {
                this.winW = window.innerWidth;
                this.winH = window.innerHeight;
			}
        }
		var top = (this.winH - 137)/2 + 'px';
		var div = new Element('div',{
			'style':'position:fixed; width:41px; height:137px; z-index:2; cursor:pointer; left:0px; top:' + top,
			'id':'survey_div'
		});
		var img = new Element('img',{
			'width':'41',
			'height':'137',
			'border':'0',
			'title':'Скажи что ты думаешь!',
			'alt':'Скажи что ты думаешь!',
			'src':'/img/Survey.png',
			'onclick':'Survey.getForm()'
		});
		div.appendChild(img);
		this.page.appendChild(div);
		return true;
	},
	getForm:function() {
		$('survey_div').remove();
		var bg = new Element('div',{
			'style':'position:fixed; width:' + this.winW + 'px; height:' + this.winW + 'px; z-index:2; left:0px; top:0px; background-color:white;',
			'id':'survey_bg'
		});
		this.page.appendChild(bg);
		$('survey_bg').setOpacity(0.9);
		var left = (this.winW-440)/2 + 'px';
		var div = new Element('div',{
			'style':'position:absolute; width:440px; z-index:2; left:'+ left +'; top:10px',
			'id':'survey_div'
		});
		this.page.appendChild(div);
		new Ajax.Updater('survey_div','/survey.php',{
			onComplete:function() {
				window.scrollTo(0,0);
			}
		});
	},
	Close:function() {
		if($('survey_div')) $('survey_div').remove();
		if($('survey_bg')) $('survey_bg').remove();
		this.onLoad();
	}
}
*/

//Edit in place

makeEditable = function ()
{
	$$('.editMe').each(function(s) {
	 s.writeAttribute('title', 'Кликните для редактирования');
     Event.observe(s, 'click', function(){editMe($(s))}, false);
     Event.observe(s, 'mouseover', function(){showAsEditable($(s))}, false);
     Event.observe(s, 'mouseout', function(){showAsEditable($(s), true)}, false);
	});
}

function showAsEditable(obj, clear){
     if (!clear){
          Element.addClassName(obj, 'editable');
     }else{
          Element.removeClassName(obj, 'editable');
     }
 }
 
function editMe(obj){
     
	 var par = obj.id.split('_');
	 if(par.length !=2 || par[0].lenghth<1 || par[1]<0)
	 {
		alert('Ошибочка вышла, невозможно редактировать этот элемент: ' + obj.id );
		return false;
	 }
	 Element.hide(obj);

	var textarea ='<div id="' + obj.id + '_editor" class="js_editor"><textarea id="' + obj.id + '_edit" name="' + obj.id + '" rows="4" cols="60">' + obj.innerHTML + '</textarea>';

     var button = '<input id="' + obj.id + '_save" value="Сохранить" type="button"  class="button"> или <input id="' + obj.id + '_cancel" value="Отмена" type="button" class="button"></div>';

     new Insertion.After(obj, textarea+button);
     Event.observe(obj.id+'_save', 'click', function(){EditMesaveChanges(obj,par[1],par[0])}, false);
     Event.observe(obj.id+'_cancel', 'click', function(){cleanupEditMe(obj)}, false);
	 $(obj.id+'_editor').focus();
	 

}
function cleanupEditMe(obj, keepEditable){
     Element.remove(obj.id+'_editor');
     Element.show(obj);
     if (!keepEditable) showAsEditable(obj, true);
 }

 function EditMesaveChanges(obj,id,type,text)
 {
	var eobj = $(obj.id+'_edit');
	var new_content = eobj.value.stripTags();
	eobj.setStyle({background:'url(/img/lightbox/loading.gif) no-repeat center center'});
	
	var url = '/responder/?cmd=saveNote';
	var pars = 'id=' + id + '&type=' + type +'&content=' + new_content;
	new Ajax.Request(url,
	{
		method: 'post',
		postBody:pars,
		onSuccess: function(transport)
		{
			if (transport.responseText.search(/^OK\s*/) >= 0)
			{
				obj.innerHTML = new_content;
				//eobj.setStyle({background:'none'});
				cleanupEditMe(obj);	
			}
			else
			{
				//eobj.setStyle({background:'none'});
				alert('Ошибка: ' + transport.responseText);
				cleanupEditMe(obj);
			}
		},
		onFailure: function(transport)
		{
			eobj.setStyle({background:'none'});
			alert("Не удалось сохранить " + ": " + transport.status + " " + transport.statusText);
			cleanupEditMe(obj);
		}
	}
	);
}

function nl2br(str) { return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1<br />$2'); }
function br2nl(str) { return (str + '').replace(/([^>\r\n]?)<br \/>(\r\n|\n\r|\r|\n)/g, '$1$2'); }

addLoadEvents(makeEditable);

