"use strict";
if(typeof(WPF_DATA)=='undefined')
var WPF_DATA={};
if(isNumber(WPF_DATA.animationSpeed))
WPF_DATA.animationSpeed=parseInt(WPF_DATA.animationSpeed);
else if(jQuery.inArray(WPF_DATA.animationSpeed, ['fast', 'slow'])==-1)
WPF_DATA.animationSpeed='fast';
WPF_DATA.showSubscreenOnCenter=parseInt(WPF_DATA.showSubscreenOnCenter);
var sdLoaderImgWpf='<img src="'+ WPF_DATA.loader+ '" />';
var g_wpfAnimationSpeed=300;
jQuery.fn.showLoaderWpf=function(){
return jQuery(this).html(sdLoaderImgWpf);
};
jQuery.fn.appendLoaderWpf=function(){
jQuery(this).append(sdLoaderImgWpf);
};
jQuery.sendFormWpf=function(params){
return jQuery('<br />').sendFormWpf(params);
};
jQuery.fn.sendFormWpf=function(params){
var form=null;
if(!params)
params={fid: false, msgElID: false, onSuccess: false};
if(params.fid)
form=jQuery('#'+ fid);
else
form=jQuery(this);
var sentFromForm=(jQuery(form).tagName()=='FORM');
var data=new Array();
if(params.data)
data=params.data;
else if(sentFromForm)
data=jQuery(form).serialize();
if(params.appendData){
var dataIsString=typeof(data)=='string';
var addStrData=[];
for(var i in params.appendData){
if(dataIsString){
addStrData.push(i+ '='+ params.appendData[i]);
} else
data[i]=params.appendData[i];
}
if(dataIsString)
data +='&'+ addStrData.join('&');
}
var msgEl=null;
if(params.msgElID){
if(params.msgElID=='noMessages')
msgEl=false;
else if(typeof(params.msgElID)=='object')
msgEl=params.msgElID;
else
msgEl=jQuery('#'+ params.msgElID);
}
if(typeof(params.inputsWraper)=='string'){
form=jQuery('#'+ params.inputsWraper);
sentFromForm=true;
}
if(sentFromForm&&form){
jQuery(form).find('.wpfInputError').removeClass('wpfInputError');
}
if(msgEl&&!params.btn){
jQuery(msgEl)
.removeClass('wpfSuccessMsg')
.removeClass('wpfErrorMsg');
if(!params.btn){
jQuery(msgEl).showLoaderWpf();
}}
if(params.btn){
jQuery(params.btn).attr('disabled', 'disabled');
params.btnIconElement=jQuery(params.btn).find('.fa').length ? jQuery(params.btn).find('.fa'):jQuery(params.btn);
if(jQuery(params.btn).find('.fa').length){
params.btnIconElement
.data('prev-class', params.btnIconElement.attr('class'))
.attr('class', 'fa fa-spinner fa-spin');
}else{
params.btnIconElement.attr('data-prev-text', params.btnIconElement.html());
params.btnIconElement.html('<i class="fa fa-spinner fa-spin"></i>');
}}
var url='';
if(typeof(params.url)!='undefined')
url=params.url;
else if(typeof(ajaxurl)=='undefined'||typeof(ajaxurl)!=='string')
url=WPF_DATA.ajaxurl;
else
url=ajaxurl;
jQuery('.wpfErrorForField').hide(WPF_DATA.animationSpeed);
var dataType=params.dataType ? params.dataType:'json';
if(typeof(data)=='string'){
data +='&pl='+ WPF_DATA.WPF_CODE;
data +='&reqType=ajax';
}else{
data['pl']=WPF_DATA.WPF_CODE;
data['reqType']='ajax';
}
jQuery.ajax({
url: url,
data: data,
type: 'POST',
dataType: dataType,
success: function(res){
toeProcessAjaxResponseWpf(res, msgEl, form, sentFromForm, params);
if(params.clearMsg){
setTimeout(function(){
if(msgEl)
jQuery(msgEl).animateClear();
}, typeof(params.clearMsg)=='boolean' ? 5000:params.clearMsg);
}}
});
};
jQuery.fn.animateClear=function(){
var newContent=jQuery('<span>'+ jQuery(this).html()+ '</span>');
jQuery(this).html(newContent);
jQuery(newContent).hide(WPF_DATA.animationSpeed, function(){
jQuery(newContent).remove();
});
};
jQuery.fn.animateRemoveWpf=function(animationSpeed, onSuccess){
animationSpeed=animationSpeed==undefined ? WPF_DATA.animationSpeed:animationSpeed;
jQuery(this).hide(animationSpeed, function(){
jQuery(this).remove();
if(typeof(onSuccess)==='function')
onSuccess();
});
};
function toeProcessAjaxResponseWpf(res, msgEl, form, sentFromForm, params){
if(typeof(params)=='undefined')
params={};
if(typeof(msgEl)=='string')
msgEl=jQuery('#'+ msgEl);
if(msgEl)
jQuery(msgEl).html('');
if(params.btn){
jQuery(params.btn).removeAttr('disabled');
if(params.btnIconElement){
params.btnIconElement.attr('class', params.btnIconElement.data('prev-class'));
var prevText=params.btnIconElement.attr('data-prev-text');
if(prevText&&prevText.length) params.btnIconElement.html(prevText);
}}
if(typeof(res)=='object'){
if(res.error){
if(msgEl){
jQuery(msgEl)
.removeClass('wpfSuccessMsg')
.addClass('wpfErrorMsg');
}
var errorsArr=[];
for(var name in res.errors){
if(sentFromForm){
var inputError=jQuery(form).find('[name*="'+ name+ '"]');
inputError.addClass('wpfInputError');
if(!inputError.data('keyup-error-remove-binded')){
inputError.keydown(function(){
jQuery(this).removeClass('wpfInputError');
}).data('keyup-error-remove-binded', 1);
}}
if(jQuery('.wpfErrorForField.toe_'+ nameToClassId(name)+ '').exists())
jQuery('.wpfErrorForField.toe_'+ nameToClassId(name)+ '').show().html(res.errors[name]);
else if(msgEl)
jQuery(msgEl).append(res.errors[name]).append('<br />');
else
errorsArr.push(res.errors[name]);
}
if(errorsArr.length&&params.btn&&jQuery.fn.dialog&&!msgEl&&!params.noError){
jQuery('<div title="'+ toeLangWpf("Really small warning :)")+ '" />').html(errorsArr.join('<br />')).appendTo('body').dialog({
modal: true
,	width: '500px'
});
}}else if(res.messages.length){
if(msgEl){
jQuery(msgEl)
.removeClass('wpfErrorMsg')
.addClass('wpfSuccessMsg');
for(var i=0; i < res.messages.length; i++){
jQuery(msgEl).append(res.messages[i]).append('<br />');
}}
}}
if(params.onSuccess&&typeof(params.onSuccess)=='function'){
params.onSuccess(res);
}}
function getDialogElementWpf(){
return jQuery('<div/>').appendTo(jQuery('body'));
}
function toeOptionWpf(key){
if(WPF_DATA.options&&WPF_DATA.options[ key ])
return WPF_DATA.options[ key ];
return false;
}
function toeLangWpf(key){
if(WPF_DATA.siteLang&&WPF_DATA.siteLang[key])
return WPF_DATA.siteLang[key];
return key;
}
function toePagesWpf(key){
if(typeof(WPF_DATA)!='undefined'&&WPF_DATA[key])
return WPF_DATA[key];
return false;;
}
function toeOptTimeoutHideDescriptionWpf(){
jQuery('#wpfOptDescription').removeAttr('toeFixTip');
setTimeout(function(){
if(!jQuery('#wpfOptDescription').attr('toeFixTip'))
toeOptHideDescriptionWpf();
}, 500);
}
function toeOptShowDescriptionWpf(description, x, y, moveToLeft){
if(typeof(description)!='undefined'&&description!=''){
if(!jQuery('#wpfOptDescription').length){
jQuery('body').append('<div id="wpfOptDescription"></div>');
}
if(moveToLeft)
jQuery('#wpfOptDescription').css('right', jQuery(window).width() - (x - 10));
else
jQuery('#wpfOptDescription').css('left', x + 10);
jQuery('#wpfOptDescription').css('top', y);
jQuery('#wpfOptDescription').show(200);
jQuery('#wpfOptDescription').html(description);
}}
function toeOptHideDescriptionWpf(){
jQuery('#wpfOptDescription').removeAttr('toeFixTip');
jQuery('#wpfOptDescription').hide(200);
}
function toeInArrayWpf(needle, haystack){
if(haystack){
for(var i in haystack){
if(haystack[i]==needle)
return true;
}}
return false;
}
function toeShowDialogCustomized(element, options){
options=jQuery.extend({
resizable: false
,	width: 500
,	height: 300
,	closeOnEscape: true
,	open: function(event, ui){
jQuery('.ui-dialog-titlebar').css({
'background-color': '#222222'
,	'background-image': 'none'
,	'border': 'none'
,	'margin': '0'
,	'padding': '0'
,	'border-radius': '0'
,	'color': '#CFCFCF'
,	'height': '27px'
});
jQuery('.ui-dialog-titlebar-close').css({
'background': 'url("'+ WPF_DATA.cssPath+ 'img/tb-close.png") no-repeat scroll 0 0 transparent'
,	'border': '0'
,	'width': '15px'
,	'height': '15px'
,	'padding': '0'
,	'border-radius': '0'
,	'margin': '7px 7px 0'
}).html('');
jQuery('.ui-dialog').css({
'border-radius': '3px'
,	'background-color': '#FFFFFF'
,	'background-image': 'none'
,	'padding': '1px'
,	'z-index': '300000'
,	'position': 'fixed'
,	'top': '60px'
});
jQuery('.ui-dialog-buttonpane').css({
'background-color': '#FFFFFF'
});
jQuery('.ui-dialog-title').css({
'color': '#CFCFCF'
,	'font': '12px sans-serif'
,	'padding': '6px 10px 0'
});
if(options.openCallback&&typeof(options.openCallback)=='function'){
options.openCallback(event, ui);
}
jQuery('.ui-widget-overlay').css({
'z-index': jQuery(event.target).parents('.ui-dialog:first').css('z-index') - 1
,	'background-image': 'none'
});
if(options.modal&&options.closeOnBg){
jQuery('.ui-widget-overlay').unbind('click').bind('click', function(){
jQuery(element).dialog('close');
});
}}
}, options);
return jQuery(element).dialog(options);
}
function toeSliderMove(event, ui){
var id=jQuery(event.target).attr('id');
jQuery('#toeSliderDisplay_'+ id).html(ui.value);
jQuery('#toeSliderInput_'+ id).val(ui.value).change();
}
function wpfCorrectJqueryUsed(){
return (typeof(jQuery.fn.sendFormWpf)==='function');
}
function wpfReloadCoreJs(clb, params){
var scriptsHtml=''
,	coreScripts=['common.js', 'core.js'];
for(var i=0; i < coreScripts.length; i++){
scriptsHtml +='<script type="text/javascript" class="wpfReloadedScript" src="'+ WPF_DATA.jsPath+ coreScripts[ i ]+ '"></script>';
}
jQuery('head').append(scriptsHtml);
if(clb){
_wpfRunClbAfterCoreReload(clb, params);
}}
function _wpfRunClbAfterCoreReload(clb, params){
if(wpfCorrectJqueryUsed()){
callUserFuncArray(clb, params);
return;
}
setTimeout(function(){
wpfCorrectJqueryUsed(clb, params);
}, 500);
}
function wpfGetStyleSheetRule(sheetId, rule, isLike){
var obj=document.getElementById(sheetId),
sheet=obj.sheet||obj.styleSheet,
rules=sheet.cssRules||sheet.rules,
isLike=typeof isLike=='undefined' ? false:isLike;
for (var r=0; r < rules.length; r++){
if(isLike){
if(rules[r].selectorText.indexOf(rule)===0) return rules[r];
}else if(rules[r].selectorText==rule) return rules[r];
}
return false;
}
function wpfGetColorText(bg){
if(typeof bg!=='undefined'&&bg.length >=7){
var rgb=(/^#[0-9A-F]{6}$/i.test(bg))
? [0, parseInt(bg.substring(1,3),16), parseInt(bg.substring(3,5),16), parseInt(bg.substring(5,7),16)]
: bg.replace(/\s/g,'').match(/^rgba?\((\d+),(\d+),(\d+)/i);
if(rgb.length >=4&&(1 - (0.299 * rgb[1] + 0.587 * rgb[2] + 0.114 * rgb[3]) / 255) > 0.5) return '#dddddd';
}
return '#444444';
}
function wpfLightenDarkenColor(col, amt){
var usePound=false,
r=255,
g=255,
b=255;
if(typeof col!=='undefined'&&col.length >=7){
if(col.indexOf('rgb')==-1){
if(col[0]=="#"){
col=col.slice(1);
usePound=true;
}
var num=parseInt(col, 16);
r=(num >> 16);
b=((num >> 8) & 0x00FF);
g=(num & 0x0000FF);
}else{
var withA=col.indexOf('rgba')!=-1,
rgb=withA ? col.replace(/\s/g,'').match(/^rgba?\((\d+),(\d+),(\d+),(\d+)/i):col.replace(/\s/g,'').match(/^rgba?\((\d+),(\d+),(\d+)/i);
if(rgb.length >=4){
var a=withA ? rgb[3]:1,
bg=(1 - a) * 255;
r=rgb[1] * a + bg;
g=rgb[2] * a + bg;
b=rgb[3] * a + bg;
}
usePound=true;
}}
r=r + amt;
b=b + amt;
g=g + amt;
if(r > 255) r=255;
else if(r < 0) r=0;
if(b > 255) b=255;
else if(b < 0) b=0;
if(g > 255) g=255;
else if(g < 0) g=0;
var res=(g | (b << 8) | (r << 16)).toString(16);
return (usePound?"#":"") + '0'.repeat(6 - res.length) + res;
};