var Browser = "";
needErrMess = false;
function getBrowser(){
	var x = navigator;
	var Name = x.appName;
	var Version = x.appVersion;
	var UA = x.userAgent;
	if (Name.match("icrosoft")){
		if (Version.match("MSIE 6.0"))	Browser="IE6";
		if (Version.match("MSIE 7.0"))	Browser="IE7";
		if (Version.match("MSIE 8.0"))	Browser="IE8";
	}
	else if (Name.match("pera")) Browser="OP";
	else if (UA.search("avigat") > 0) Browser="NS";
	else if (UA.search("irefox") > 0) Browser="FF";
	else if (UA.search("afari") > 0) Browser="SF";
	else Browser="NC";
}
getBrowser();

//var validation = 0;

$(function(){
    $('form').each(function(){
        var form = this;
        form.validation = 0;
        $(form).bind('submit', function(){
        	var actionForm = $(form).attr('action');
        	if (form.validation > 0){return false;}
        	else {
        		$(form).append('<input type="hidden" name="please_submit" value="yes">');
        		return true;
        	}
        });
        
        $(form).find("[color='vRed']").each(function(){
        	$(this).css({ border : "0", borderBottom : "1px solid #FF3333" });
        	form.validation++;
        	setBind(this,form);
        });
        $(form).find("[color='vGreen']").each(function(){
        	$(this).css({ border : "0", borderBottom : "1px solid transparent" });
        	setBind(this,form);
        });
        if (form.validation > 0) disableSaveButtons($(form));
    });
});

function setBind(element,form) {
	/*$(form).bind('keyup',function(event){
		checkButton(event,form);
	});*/
	$(element).bind('blur',function(){validateElement(element,form);});
	$(element).bind('keyup',function(){validateElement(element,form);});	
}

function validateElement(element,form) {
	switch (validateInit(element,form)) {
		case '-' : 
			form.validation--;
			if (form.validation == 0) enableSaveButtons(form);
			break;
		case '+' :
			if (form.validation == 0) disableSaveButtons(form); 
			form.validation++; break;
		default: break;
	}
 
}

function makeFields(settings) {
	var autocopleteEnd = false;
	for (field in settings) {
		switch(settings[field].elType) {
			case 'autocomplete' :
				if(!autocopleteEnd) $.getScript(server+"/js/form/elements/AutocompleteEnd.js");
				autocopleteEnd = true;
				makeAutocomplete(field, settings[field]);
			break;
			case 'tinymce' :
				makeTinymce($('#'+field+'_').attr('rows')*1, settings[field].mode);
			break;
			case 'calendar' :
				makeCalendar(field, settings[field]);
			break;
			case 'swfupload' :
				makeSwfupload(field);
			break;
			case 'slider' :
				makeSlider(field, settings[field]);
			break;
		}
	}
}

function makeCalendar(field, settings) {
	var calendar = $('#'+field+'_[calendar]');

	$(calendar).datepick({dateFormat: 'dd.mm.yy'});
	$(calendar).removeAttr('calendar');
}

function makeTinymce(rows,mode) {
 	if (rows < 6) var height = '100';
 	else var height = 101+(rows-5)*16;
 	if (mode) {
	    $('textarea.tinymce').tinymce({
	        script_url : '/js/tinymce/tiny_mce.js',
	        theme : "advanced",
	        plugins : "inlinepopups,safari,table,advimage,advlink,insertdatetime,preview,media,contextmenu,paste,fullscreen,visualchars,nonbreaking",
			language : 'ru',
			relative_urls : 0,
			height:height,
			width:'100%',
			theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,bullist,numlist,|,link,image,media,|,forecolor,backcolor",
			theme_advanced_buttons2 : "",
	  		theme_advanced_buttons3 : "",
	        theme_advanced_toolbar_location : "top",
	        theme_advanced_toolbar_align : "left"
	    });
 	}
 	else {
	    $('textarea.tinymce').tinymce({
	        script_url : '/js/tinymce/tiny_mce.js',
	        theme : "advanced",
	        plugins : "inlinepopups,safari,table,advimage,advlink,insertdatetime,preview,media,contextmenu,paste,fullscreen,visualchars,nonbreaking",
			language : 'ru',
			relative_urls : 0,
			height:height,
			theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect,table,|,sub,sup,|,fullscreen",
			theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,media,cleanup,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
	  		theme_advanced_buttons3 : "",
	        theme_advanced_toolbar_location : "top",
	        theme_advanced_toolbar_align : "left"
	    });
 	}
}

function makeAutocomplete(field, settings) {
		if(settings.config) {
            var where = $('#_'+field).attr('where') ? $('#_'+field).attr('where') : 0;
		    var act = $('#_'+field).attr('act') ? '/user/'+$('#_'+field).attr('act') : '/user/getAutocomplete/'; 
			$('#_'+field).autocomplete(server+act, {
				table:settings.config.table,
				field:settings.config.field,
                where:where,
				minChars: 0,
				max: 12,
	//			autoFill: true,
				mustMatch: true,
				matchContains: true,
				scrollHeight: 220
			});
			
			$('#_'+field).result(function(event, data, formatted) {
				if (data) {
				    $('#'+field).val(data[1]);
				    if($('#_'+field).attr('nextField')) {
				        var next = $('#_'+field).attr('nextField');
                        $('#_'+next).removeAttr('disabled');
                        $('#'+next).removeAttr('disabled');
                    }
				}
				else {
				    $('#'+field).attr('value',0);
                    if($('#_'+field).attr('nextField')) {
                        $('#'+$('#_'+field).attr('nextField')).val('').attr('disabled','true');
                        $('#_'+$('#_'+field).attr('nextField')).val('').attr('disabled','true');
                        validateElement($('#_'+$('#_'+field).attr('nextField')),$('#_'+field).parent().parent());
                    }
				}
			});
		}
}

function makeSwfupload(field) {
  	if($('#formId').find('#spanButtonPlaceholder:first').get(0)) {
        $.ajax({url:"/js/form/elements/frontSwfUpload.js",dataType:"script",cache:false});
        $.ajax({
            url: server+"/ajax/getPaths/",
            dataType:"json",
            cache:false,
        	success: function(path) {
        		corePath = path.corePath;
        		sessionId = path.sessionId;
        		fileResolutions = path.fileResolutions;
                initSwfUpload(field);
        	}
        });
	}
}

//function makeSlider(field, settings) {
//	$('#_'+field).trackbar({
//		onMove : function() {
//			if(settings.config.mode == 'single') $('#'+field).attr('value',this.leftValue);
//			else $('#'+field).attr('value',this.leftValue+'|'+this.rightValue);
//		},
//		dual:settings.config.dual,
//		width : 400,
//		leftLimit : settings.config.min,
//		leftValue : settings.config.leftVal,
//		rightLimit : settings.config.max,
//		rightValue : settings.config.rightVal
//	});
//}

function makeSlider(field, settings) {
	$('#_'+field).trackbar(
		{
			onMove : function() {
				if(settings.config.mode == 'single')$('#'+field).attr('value',this.leftValue);
				else $('#'+field).attr('value',this.leftValue+'|'+this.rightValue);

				if(settings.config.linked) {
					lo = $.trackbar.getObject('_'+settings.config.linked); 
					lo.updateLeftValue(this.rightLimit - this.leftValue);
					$('#'+settings.config.linked).attr('value',this.rightLimit - this.leftValue);
				}
			},
			dual : settings.config.dual, // two intervals
			width : 400, // px
			leftLimit : settings.config.min, // unit of value
			leftValue : settings.config.leftVal, // unit of value
			rightLimit : settings.config.max, // unit of value
			rightValue : settings.config.rightVal, // unit of value
			hehe : ":-)"
		},
		"_"+field
	);
}

function classFilter(r,m,not){
	m = ""+m+"";
	var tmp = [];
	for (var i=0; r[i]; i++) {
		var pass = (""+r[i].className+"").indexOf(m) >= 0;
		if (not^pass)
			tmp.push(r[i]);
	}
	return tmp;
}

function setZIndex(parent, zindex) {
	$(parent).css('z-index',zindex);
	zindex = zindex*1+1;
	if($('#datepick-div')) $('#datepick-div').css('z-index',zindex);
	if($('.ac_results')) $('.ac_results').css('z-index',zindex);
}

