/***
 * Pacth for dialog-fix ckeditor problem [ by ticket #4727 ]
 *      http://dev.jqueryui.com/ticket/4727
 */

$.extend($.ui.dialog.overlay, { create: function(dialog){
        if (this.instances.length === 0) {
                // prevent use of anchors and inputs
                // we use a setTimeout in case the overlay is created from an
                // event that we're going to be cancelling (see #2804)
                setTimeout(function() {
                        // handle $(el).dialog().dialog('close') (see #4065)
                        if ($.ui.dialog.overlay.instances.length) {
                                $(document).bind($.ui.dialog.overlay.events, function(event) {
                                        var parentDialog = $(event.target).parents('.ui-dialog');
                                        if (parentDialog.length > 0) {
                                                var parentDialogZIndex = parentDialog.css('zIndex') || 0;
                                                return parentDialogZIndex > $.ui.dialog.overlay.maxZ;
                                        }
                                        
                                        var aboveOverlay = false;
                                        $(event.target).parents().each(function() {
                                                var currentZ = $(this).css('zIndex') || 0;
                                                if (currentZ > $.ui.dialog.overlay.maxZ) {
                                                        aboveOverlay = true;
                                                        return;
                                                }
                                        });
                                        
                                        return aboveOverlay;
                                });
                        }
                }, 1);
                
                // allow closing by pressing the escape key
                $(document).bind('keydown.dialog-overlay', function(event) {
                        (dialog.options.closeOnEscape && event.keyCode
                                        && event.keyCode == $.ui.keyCode.ESCAPE && dialog.close(event));
                });
                        
                // handle window resize
                $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
        }
        
        var $el = $('<div></div>').appendTo(document.body)
                .addClass('ui-widget-overlay').css({
                width: this.width(),
                height: this.height()
        });
        
        (dialog.options.stackfix && $.fn.stackfix && $el.stackfix());
        
        this.instances.push($el);
        return $el;
}});



(function($) {
        $.addslashes = function (str) {
                str = str.replace(/\'/g,'\\\'');
                str = str.replace(/\"/g,'\\"');
                str = str.replace(/\\/g,'\\\\');
                str = str.replace(/\0/g,'\\0');
                return str;
        };
})(jQuery);

(function($){
    $.fn.extend({
		htmlentities:function(options){
			//ENT_COMPAT 	Will convert double-quotes and leave single-quotes alone.
			//ENT_QUOTES 	Will convert both double and single quotes.
			//ENT_NOQUOTES	Will leave both double and single quotes unconverted.
			
			var defaults = {
               flag: 'ENT_NOQUOTES'
            };
			options = $.extend(defaults, options);
			
			return this.each(function() 
            {
                var o = options;
                var obj = $(this);
                var flag = o.flag;
				var findReplace = [];
				switch(flag){
					case 'ENT_COMPAT':
						findReplace = [ [/&/g, "&amp;"], [/</g, "&lt;"], [/>/g, "&gt;"], [/"/g, "&quot;"]];
						for(item in findReplace){
						    obj = obj.replace(item[0], item[1]);
						}
					break;
					case 'ENT_QUOTES':
						findReplace = [[/&/g, "&amp;"], [/</g, "&lt;"], [/>/g, "&gt;"], [/"/g, "&quot;"], [/'/g, "&#039;"]];
						for(item in findReplace){
						    obj = obj.replace(item[0], item[1]);
						}
					break;
					case 'ENT_NOQUOTES':
						findReplace = [[/&/g, "&amp;"], [/</g, "&lt;"], [/>/g, "&gt;"]];
						for(item in findReplace){
						    obj = obj.replace(item[0], item[1]);
						}
					break;
				}
			});
		}	
    });
})(jQuery);
/*
(function($) {
        $.htmlentities = function (html) {
                var escaped = html;
				var findReplace = [[/&/g, "&amp;"], [/</g, "&lt;"], [/>/g, "&gt;"], [/"/g, "&quot;"], [/'/g, "&#039;"]]
				for(item in findReplace){
				    escaped = escaped.replace(item[0], item[1]);
				}
				debuglog(html);
				debuglog(escaped);
                return escaped;
        };
})(jQuery);

*/

//function for Ckeditor tralalal
function showHtmlEditor(return_element){
	//debuglog(return_element);
	var ckoptions = { 	
			langCode: 'en',
			skin : 'office2003',
			width:870,
			height:300,
			disableNativeTableHandles:false,
			toolbar:
			[
				['Source', '-', 'Bold', 'Italic', 'Underline', 'Strike','Subscript','Superscript' ],
				['Table','Tablecellproperties','Tablerow','Tablecolumn','Image', 'Link', 'Unlink', 'Anchor'],
				['Cut','Copy','Paste','PasteText','PasteFromWord','-','Find','Replace'],
				['Undo','Redo','-','SelectAll','RemoveFormat'],
				['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
				['NumberedList','BulletedList'],
				['Format','PageBreak'],
				['TextColor','BGColor'],
				['Font','FontSize']
			],
			filebrowserBrowseUrl:'ckfinder/ckfinder.html',
			filebrowserImageBrowseUrl:'ckfinder/ckfinder.html?type=Images',
			filebrowserFlashBrowseUrl:'ckfinder/ckfinder.html?type=Flash',
			filebrowserUploadUrl:'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
			filebrowserImageUploadUrl:'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
			filebrowserFlashUploadUrl:'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
			
		};
	
	var $dialog = $('<div class="ckeditor_dialog"></div>');
	$dialog.dialog({
		autoOpen: false,
		title: 'HTML/TEXT EDITOR',
		resizable:true,
		modal:true,
		closeOnEscape:true,
		open: function(){
			//debuglog(return_element);
			//debuglog($("#"+return_element).val());
			$(this).append('<textarea class="editor">'+$("#"+return_element).val()+'</textarea>');
			$(this).find('textarea.editor').ckeditor(ckoptions);
		},
		close: function(){
			//var editor = $('textarea.editor').ckeditorGet(); 
			//editor.destroy();
		},
		width:900,
		position:['left', 'center'],
		height: 500,
		buttons:{
			'Save' : function() {
						var editor = $('textarea.editor').ckeditorGet(); 
						var data = editor.getData();
						//debuglog(data);
	                    if( $('#'+return_element).length!==0 ){
	                            $('#'+return_element).val(data);
							//debuglog($('#'+return_element).val());
								$(".ckeditor_dialog").dialog('close');
								$(".ckeditor_dialog").remove();  
	                    }
	                },
	                'Cancel' : function(){	
	                        $(".ckeditor_dialog").dialog('close');      
	                        $(".ckeditor_dialog").remove();      
	                }
	            }
		});
		
		$('.ckeditor_dialog').bind("dialogclose", function(){
			$('.ckeditor_dialog').dialog('destroy');
			$('.ckeditor_dialog').remove();
		});
		
		$dialog.dialog('open');

        $("a.cke_button_source").live('click', function(){
			if( $("button:contains('Save')", $('.ckeditor_dialog').parent()).is(":hidden") ){
                 $("button:contains('Save')", $('.ckeditor_dialog').parent()).show(0);
                 $("button:contains('Cancel')", $('.ckeditor_dialog').parent()).show(0);
				
			}
			else{
                 $("button:contains('Cancel')", $('.ckeditor_dialog').parent()).hide(0);
                 $("button:contains('Save')", $('.ckeditor_dialog').parent()).hide(0);
			}
			 return false;
        });       
}
/*
 * Image preview script 
 * powered by jQuery (http://www.jquery.com)
 * 
 * written by Alen Grakalic (http://cssglobe.com)
 * 
 * for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
 *
 */
 (function($){
	$.fn.imagePreviewNew = function(options){
		options = $.extend({  
                         'xOffset' : 30,
						 'yOffset' : 30
                    },options || {});
			var $this = $(this); 
			$this.each(function(i, obj){				
				$(obj).mouseenter(function(e){
					$("#lightbox").remove();
					this.t = this.title;
					this.title = "";
					
					var url = $("input[name='image_url']", $this).val();
					
					var c = (this.t !== "") ? "<br/>" + this.t : "";
					
					if(url.length!==0){
						
						$("body").append('<p id="lightbox"><img src="'+ url +'" alt="Image preview" /><h4 style="color:#fff;">'+ c +'</h4></p>');								 
						$('#lightbox').preloader({
								preload_parent:"#lightbox"
						});
						var bWidth = $("body").width();
						var restWidth = bWidth - e.pageX;
						var lbWitdh = $("#lightbox").outerWidth();
	
						if( lbWitdh+170 < restWidth ){
							//debuglog('to right of the cursor');
							$("#lightbox")
							.css("top",(e.pageY - options.yOffset) + "px")
							.css("left",(e.pageX + options.xOffset) + "px")
							.fadeIn("fast");
						}
						else{
							///debuglog('to left of the cursor');
							$("#lightbox")
							.css("top",(e.pageY - options.yOffset) + "px")
							.css("left",(e.pageX - lbWitdh - options.xOffset) + "px")
							.fadeIn("fast");						
						}
					}
				})
				.mouseleave(function(e){
					this.title = this.t;	
					$("#lightbox").remove();
				})
				.mousemove(function(e){
					var bWidth = $("body").width();
					var restWidth = bWidth - e.pageX;
					var lbWitdh = $("#lightbox").outerWidth();
					
					if( lbWitdh+170 < restWidth ){
						//debuglog('to left of the cursor');
						$("#lightbox")
						.css("top",(e.pageY - options.yOffset) + "px")
						.css("left",(e.pageX + options.xOffset) + "px")
						.fadeIn("fast");
					}
					else{
						//debuglog('to right of the cursor');
						$("#lightbox")
						.css("top",(e.pageY - options.yOffset) + "px")
						.css("left",(e.pageX - lbWitdh - options.xOffset) + "px")
						.fadeIn("fast");	
					}
				});			
			});
	};
})(jQuery);	

function replaceTextarea( selector ){
	var ckoptions = { 	
			langCode: 'en',
			width:760,
			height:300,
			disableNativeTableHandles:false,
			toolbar:
			[
				['Source', '-', 'Bold', 'Italic', 'Underline', 'Strike','Subscript','Superscript' ],
				['Table','Tablecellproperties','Tablerow','Tablecolumn','Image', 'Link', 'Unlink', 'Anchor'],
				['Cut','Copy','Paste','PasteText','PasteFromWord','-','Find','Replace'],
				['Undo','Redo','-','SelectAll','RemoveFormat'],
				['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
				['NumberedList','BulletedList'],
				['Format','PageBreak'],
				['TextColor','BGColor'],
				['Font','FontSize']
			],
			filebrowserBrowseUrl:'/ckfinder/ckfinder.html',
			filebrowserImageBrowseUrl:'/ckfinder/ckfinder.html?type=Images',
			filebrowserFlashBrowseUrl:'/ckfinder/ckfinder.html?type=Flash',
			filebrowserUploadUrl:'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
			filebrowserImageUploadUrl:'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
			filebrowserFlashUploadUrl:'/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
			
		};
	if($(selector).val() == '') $(selector).val('<p>&nbsp;</p>');	
	$(selector).ckeditor(ckoptions);
}

function trim (str, charlist) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: mdsjack (http://www.mdsjack.bo.it)
    // +   improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev)
    // +      input by: Erkekjetter
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: DxGx
    // +   improved by: Steven Levithan (http://blog.stevenlevithan.com)
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // *     example 1: trim('    Kevin van Zonneveld    ');
    // *     returns 1: 'Kevin van Zonneveld'
    // *     example 2: trim('Hello World', 'Hdle');
    // *     returns 2: 'o Wor'
    // *     example 3: trim(16, 1);
    // *     returns 3: 6

    var whitespace, l = 0, i = 0;
    str += '';charlist += '';
    
    if (!charlist) {
        // default list
        whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
    } else {
        // preg_quote custom list
        charlist += '';
        whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');
    }
    
    l = str.length;
    for (i = 0; i < l; i++) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(i);
            break;
        }
    }
    
    l = str.length;
    for (i = l - 1; i >= 0; i--) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(0, i + 1);
            break;
        }
    }
    
    return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}


function showJSONresponse( data ){
	if( typeof data.err != 'undefined' && data.err.length !==0 ){	
		if( $.isArray( data.err) ){
			$.each(data.err,function(i,obj){
				show_stack_bottomleft(true, parseHtml($.trim(data.err[i])));	
			});	
		}
		else{
			show_stack_bottomleft(true, parseHtml($.trim(data.err)));
		}
    }
	
    if( typeof data.msg != 'undefined' && data.msg.length!==0 ){
		
		if( $.isArray( data.msg) ){
			$.each(data.msg,function(i,obj){
				show_stack_bottomleft(false, data.msg[i]);	
			});	
		}
		else{
			show_stack_bottomleft(false, data.msg);
		}	
	}
}


function stripText(text)  {
  text = text.toLowerCase();

  // strip all non word chars
  text = text.replace(/\W/g, ' ');

  // replace all white space sections with a dash
  text = text.replace(/\s+/g, '-');

  // replace dashes with a dash
  text = text.replace(/\-+/g, '-');
  text = text.replace(/\_+/g, '-');
  //text = text.replace(/\ +/, '-');
  // trim dashes
  text = trim(text, '-');

  return text;
}

$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name]) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

$.extend({
    getUrlVars: function(){
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    },
    getUrlVar: function(name){
        return $.getUrlVars()[name];
    }
});

/*@cc_on
    (function(f) {
        window.setTimeout = f(window.setTimeout);   // overwrites the global function!
        window.setInterval = f(window.setInterval); // overwrites the global function!
    })(function(f) {
        return function(c, t) {
            var a = [].slice.call(arguments, 2);    // gathers the extra args
            return f(function() {
                c.apply(this, a);                   // passes them to your function
            }, t);
        };
    });
    @*/

if( jQuery.validator ){
	
	jQuery.validator.addMethod("latinletterssonly", function(value, element) {
		return this.optional(element) || /^[a-zA-Z']*$/i.test(value);
	}, "Latin letters only please"); 
	
	jQuery.validator.addMethod("address", function(value, element) {
		return this.optional(element) || /^[a-zA-Z'\"\-\,\.\s0-9\#]*$/i.test(value);
	}, "Supported characters: Latin letters, Numbers, [ ,.-'\" ]"); 
	
	jQuery.validator.addMethod("city", function(value, element) {
		return this.optional(element) || /^[a-zA-Z'\-\,\.\s]*$/i.test(value);
	}, "Supported characters: Latin letters, [ ,.- ]"); 
	
	jQuery.validator.addMethod("postalcode", function(value, element) {
		return this.optional(element) || /^[a-zA-Z0-9]*$/i.test(value);
	}, "Supported characters: Latin letters, commas");
	 
	jQuery.validator.addMethod("normalphone", function(value, element) {
		return this.optional(element) || /^[\+]{1}[0-9]*$/i.test(value);
	}, "Supported characters: Digits and '+'"); 
	
	jQuery.validator.addMethod("notags", function(value, element) {
		return this.optional(element) || /^[^<>?=]*$/i.test(value);
	}, "Contains unsupported characters. No tags please."); 
	
	jQuery.validator.addMethod("selectOne", function(value, element) {
		var test1 = $('.ui-multiselect ul.selected li').length;
		return (test1!=1 && test1!=0 && test1!='');
	
	}, "Please select at least one option."); 
	
	jQuery.validator.addMethod("selectedoption", function(value, element) {
		return ($(element).find('option:selected').val() != 0);
	}, "Please select an option."); 
	
	jQuery.validator.addMethod("equalToMine", function(value, element, param) {
		var tovalue = $(param).val();
		return ( tovalue == value);
	}, "Passwords are not the same"); 
	
	jQuery.validator.addMethod("notzero", function(value, element) {
		var $form = $(element).parents('form');
		return ( ($("[name$='_status']", $form).val()==1 ) || ($("[name$='_status']", $form).val()==0 && value!=0 && value!='')  );
	}, "Please choose a reason."); 
}



jQuery.fn.fadeToggle = function(speed, easing, callback) {
   return this.animate({opacity: 'toggle'}, speed, easing, callback);
};


jQuery.fn.slideFadeToggle = function(speed, easing, callback) {
       return this.animate({opacity: 'toggle', height: 'toggle'}, speed, easing, callback);
}; 
jQuery.fn.slideFadeToggle2 = function(speed, easing, callback) {
       return this.animate({display: 'toggle', height: 'toggle'}, speed, easing, callback);
}; 

 //Random number
jQuery.extend({
	random: function(X) {
	    return Math.floor(X * (Math.random() % 1));
	},
	randomBetween: function(MinV, MaxV) {
	  return MinV + jQuery.random(MaxV - MinV + 1);
	}
});

function debuglog(arg) {
		
		var msg = arg;
		if (window.console && window.console.log){		
			console.log(msg);
		}
		else if (window.opera && window.opera.postError)
		{
			window.opera.postError(msg);
		}	
	
}

var stack_bottomright = {"dir1": "up", "dir2": "left", "firstpos1": 69, "firstpos2": 10};
function show_stack_bottomleft(is_err, text) {
				
	var msg = '';
	$.each( text, function(k,v){
		msg += v;
	});
	
	var options = {pnotify_title: "System message",
		pnotify_text: msg,
		pnotify_addclass: 'stack-bottomright',
		pnotify_stack: stack_bottomright,
		pnotify_delay: 3000,
		pnotify_width: '211px'
		
	};
	if (is_err) {
		options.pnotify_title = "Error message";
		options.pnotify_text = msg;
		options.pnotify_type = "error";
	}
	
	$.pnotify(options);
				
}



var prefillFormDB = {
    _create:function(){
        var obj = this.element;       
    },
	loadFromDB: function(id, formData){
		
		$.cookie("lastUploadedImageId", formData['image_id'], {path: '/', expires: 2});
		$("input[name='image_id']").each( function(i){
                $(this).val(formData['image_id']);
            });
		
		$.each(formData, function(k,v){
        //debuglog(formData[k].name,formData[k].value+'-'+$('#'+id).find("[name='"+formData[k].name+"'][value='"+formData[k].value+"']").is(':radio'));
            
               if($('#'+id).find("[name='"+k+"']").is(':text')){
                        $('#'+id).find("[name='"+k+"']").val(v);
               }
               
               if($('#'+id).find("[name='"+k+"']").is('textarea')){
                    $('#'+id).find("[name='"+k+"']").val(v);
               }

               if( $('#'+id).find("[name='"+k+"']").is("[type='hidden']")){
                    $('#'+id).find("[name='"+k+"']").val(v);
               }

               if( $("[name='"+k+"'][value='"+v+"']", '#'+id).is(':radio')){
                       $("[name='"+k+"'][value='"+v+"']", '#'+id).trigger("click");
                       //debuglog("click");
               }

               if( $('#'+id).find("[name='"+k+"']").is(':checkbox')){
                   if( v == $('#'+id).find("[name='"+k+"']").val() ){
                       $('#'+id).find("[name='"+k+"']").attr("checked", "checked").trigger("click");
                   }
               }
               
               $("[id^='radioset']").buttonset("refresh");
               $("input[id^='license_usage_radio_']").button("refresh");
            
            });
	},
    prefill:function(obj){
        var formid = obj.attr('id');
        var step = formid.replace("form", "");
        
        var patt = /\d+/;
      
        var stepid =  parseInt(patt.exec( formid ) ,10);
        
		var send = {};
        send.ajax = "2";
        send.showhtml = "2";
        send.action = "editFrom"+stepid;
		send.image_id = $("input[name='image_id']").val();
        send.showhtml = "2";
        var url = "/en/upload-image.html";
		

        var encoded = $.toJSON(send);
        var params = $.evalJSON(encoded);
        //debuglog(encoded);
        $.post(url,params,function(response){
			
			var formData = $.evalJSON(response.data);
			//TO DO
		});
		
        debuglog(formData);

            switch(stepid){
                case 2:
                    $.proxy( this.loadFromDB( formid, formData ), this );
                break;
                case 3:
                    this.loadFromDB( formid, formData );
					var step3_face_file = {};
					step3_face_file.image_id = formData['image_id'];
					step3_face_file.face_release_bool = formData['face_release_bool'];
					step3_face_file.release_file_name = formData['face_release_file'];
					step3_face_file.release_file_id = formData['face_release_id'];
					$.cookie('step3_face_file', $.toJSON(step3_face_file), {path: '/', expires: 1});
					
					var step3_trade_file = {};
					step3_trade_file.image_id = formData['image_id'];
					step3_trade_file.trade_release_bool = formData['trade_release_bool'];
					step3_trade_file.release_file_name = formData['trade_release_file'];
					step3_trade_file.release_file_id = formData['trade_release_id'];
					$.cookie('step3_trade_file', $.toJSON(step3_trade_file), {path: '/', expires: 1});
                    
                    if(step3_face_file.release_file_name!==''){
                        $('#face_release_upload').addClass('uploadSuccess')
                        .after(
                            '<p><span class="ui-padding-10 jqButtonFile" ><a href="/getRelease.php?file='+step3_face_file.release_file_id+'" target="_blank">face release file</a></span></p>'
                        );
                        $('#'+formid).find('#step'+stepid+'_image_id').val( step3_face_file.image_id );
                    }
                    $('#'+formid).find('#face_release_'+step3_face_file.face_release_bool).attr('checked', true);
                    $('#'+formid).find('#face_release_id').val(step3_face_file.release_file_id);
                    $('#'+formid).find('#face_release_name').val(step3_face_file.release_file_name);
                    
                    if(step3_trade_file.release_file!==''){
                        $('#trade_release_upload').addClass('uploadSuccess')
                        .after(
                            '<p><span class="ui-padding-10 jqButtonFile" ><a href="/getRelease.php?file='+step3_trade_file.release_file_id+'" target="_blank">trade release file</a></span></p>'
                        );
                        $('#'+formid).find('#step'+stepid+'_image_id').val(step3_trade_file.image_id);
                    }
                    $('#'+formid).find('#trade_release_'+step3_trade_file.trade_release_bool).attr('checked', true);
                    $('#'+formid).find('#trade_release_id').val(step3_trade_file.release_file_id);
                    $('#'+formid).find('#face_release_name').val(step3_face_file.release_file_name);     
                    
                break;
                case 4:
                    $.proxy( this.loadFromDB( formid, formData ), this );
                break;
            }

            
        
    }
};
$.widget("ui.prefillFormDB", prefillFormDB);


var prefillFormCookies = {
    _create:function(){
        var obj = this.element;
        this._prefill(obj);
    },
    loadFromCookies: function(id, formData){
        if( $.cookie('lastUploadedImageId')!==null && $.cookie('lastUploadedImageId')!==''){
            var lastUploadedImageId = parseInt( $.cookie('lastUploadedImageId') ,10);
            $("input[name='image_id']").each( function(i){
                $(this).val(lastUploadedImageId);
            });
        }

        //debuglog(id);
        $.each(formData, function(k,v){
        //debuglog(formData[k].name,formData[k].value+'-'+$('#'+id).find("[name='"+formData[k].name+"'][value='"+formData[k].value+"']").is(':radio'));
            
               if($('#'+id).find("[name='"+formData[k].name+"']").is(':text')){
                        $('#'+id).find("[name='"+formData[k].name+"']").val(formData[k].value);
               }
               
               if($('#'+id).find("[name='"+formData[k].name+"']").is('textarea')){
                    $('#'+id).find("[name='"+formData[k].name+"']").val(formData[k].value);
               }

               if( $('#'+id).find("[name='"+formData[k].name+"']").is("[type='hidden']")){
                    $('#'+id).find("[name='"+formData[k].name+"']").val(formData[k].value);
               }

               if( $("[name='"+formData[k].name+"'][value='"+formData[k].value+"']", '#'+id).is(':radio')){
                       $("[name='"+formData[k].name+"'][value='"+formData[k].value+"']", '#'+id).trigger("click");
                       //debuglog("click");
               }

               if( $('#'+id).find("[name='"+formData[k].name+"']").is(':checkbox')){
                   if( formData[k].value == $('#'+id).find("[name='"+formData[k].name+"']").val() ){
                       $('#'+id).find("[name='"+formData[k].name+"']").attr("checked", "checked").trigger("click");
                   }
               }
               
               $("[id^='radioset']").buttonset("refresh");
               $("input[id^='license_usage_radio_']").button("refresh");
            
            });
    },
    _prefill:function(obj){
        var formid = obj.attr('id');
        var step = formid.replace("form", "");
        
        var patt = /\d+/;
      
        var stepid =  parseInt(patt.exec( formid ) ,10);
        
        
        if($.cookie(formid+'data')!==null && $.cookie(formid+'data')!==''){
            var formData = $.evalJSON($.cookie(formid+'data'));

            switch(stepid){
                case 2:
                    $.proxy( this.loadFromCookies( formid, formData ), this );
                break;
                case 3:
                    this.loadFromCookies( formid, formData );

                    if( $.cookie('step3_face_file') !== null ){
                        var step3_face_file = $.evalJSON($.cookie('step3_face_file'));
                        
                        if(step3_face_file.release_file_name!==''){
                            $('#face_release_upload').addClass('uploadSuccess')
                            .after(
                                '<p><span class="ui-padding-10 jqButtonFile" ><a href="/releases/face/'+step3_face_file.release_file_name+'" target="_blank">face release file</a></span></p>'
                            );
                            $('#'+formid).find('#step'+stepid+'_image_id').val( step3_face_file.image_id );
                        }
                        
                        $('#'+formid).find('#face_release_'+step3_face_file.face_release_bool).attr('checked', true);
                        $('#'+formid).find('#face_release_id').val(step3_face_file.release_file_id);
                        $('#'+formid).find('#face_release_name').val(step3_face_file.release_file_name);
                    }

                    if( $.cookie('step3_trade_file')!==null ){
                        var step3_trade_file = $.evalJSON($.cookie('step3_trade_file'));
                        if(step3_trade_file.release_file_name!==''){
                            $('#trade_release_upload').addClass('uploadSuccess')
                            .after(
                                '<p><span class="ui-padding-10 jqButtonFile" ><a href="/releases/trade/'+step3_trade_file.release_file_name+'" target="_blank">trade release file</a></span></p>'
                            );
                            $('#'+formid).find('#step'+stepid+'_image_id').val(step3_trade_file.image_id);
                        }
                        $('#'+formid).find('#trade_release_'+step3_trade_file.trade_release_bool).attr('checked', true);
                        $('#'+formid).find('#trade_release_id').val(step3_trade_file.release_file_id);
                        $('#'+formid).find('#face_release_name').val(step3_face_file.release_file_name);
                    }
                        
                    
                break;
                case 4:
                    $.proxy( this.loadFromCookies( formid, formData ), this );
                break;
            }

            
        }
    }
};
$.widget("ui.prefillFormCookies", prefillFormCookies);




var hideuploadfile ={
    _init:function(){
        $obj = this;
        this.takeAction();
        $('#file_release').live('click',function(){
            $obj.takeAction();
        });
    },
    takeAction:function(){
       if($('#file_release').is(':checked')){
            $('#releaseToUpload').show(200);
       }else{
           $('#releaseToUpload').hide(200);
       }
    }
};
$.widget("ui.hideuploadfile", hideuploadfile);

var checkInbox = {
    getElem:function(){return this.options.myelem;},
    setElem:function(x){this.options.myelem = x;},
    _setmyInterval:function(t){this.options.interval = t;},
    _getmyInterval:function(){return this.options.interval;},
    _create:function(){     
        debuglog('create');
        this.setElem( this.element );
        var obj = this.getElem();
        this._refreshInbox($(obj));
    },
    recheck:function(){
        debuglog('recheck');
        this.setElem( this.element );
        var obj = this.getElem();
        this._request($(obj));
    },
    _timer:'',
    _request:function(obj){
            var send = {};
            send.ajax = "2";
            send.showhtml = "2";
            send.action = "check-messages";
            var encoded = $.toJSON(send);
            var params = $.evalJSON( '('+encoded+')' );
			var new_location = '/'+labels.lang+'/inbox.html';
			
            $.ajax({
				"url":new_location,
		        "data":params,
				"type": "POST",
				"async": false, 
		        "success":function(returned_data){
					var counter_message = '0';
					var system_message = '';
					if(returned_data.length !== '' && typeof returned_data != 'undefined'){
						var patt = /\d/;
		                var result = parseInt( patt.exec( $(obj).html() ) ,10);
		                system_message = '<p class="jGrowl"><a href="inbox.html" >You have '+parseInt(returned_data,10)+' unread message';
		                
						if( parseInt(returned_data,10)==1 ){
		                    system_message += "";
		                }
		                else if(parseInt(returned_data,10)>1){
		                    system_message += "s";
		                }
						
		                system_message += '. Check your inbox. </a></p>';
		
		                if(parseInt(returned_data,10)!==0){
		                    var settings = {};
		                    $(obj).parent().find(".ui-icon").effect('bounce',settings,200);
		                    $(obj).parent().find('.ui-icon').removeClass('ui-icon-mail-open').addClass('ui-icon-mail-closed');
		                }
		                else{
		                    $(obj).parent().find('.ui-icon').removeClass('ui-icon-mail-closed').addClass('ui-icon-mail-open');
		                }
						
		                if( result < parseInt(returned_data,10) ){
							show_stack_bottomleft(false,system_message);
		                }
		
		                if(result!==0){
		                    counter_message = '<a href="inbox.html" id="inbox_count" title="'+parseInt(returned_data,10)+' unread meassages" >('+parseInt(returned_data,10)+')</a>';
		                }
		                else{
		                    counter_message = '('+parseInt(returned_data,10)+')';
		                }
					}
	
	                $(obj).html($(obj).html().replace(/\(\d\)/, counter_message ));
				
				}
				
			});
			
    },
    _refreshInbox:function(obj){
        window.clearInterval(this._timer);
        this._setmyInterval(this.options.interval);
        var timeout = this._getmyInterval();
        this._timer = window.setInterval( $.proxy(this._request, this), timeout, obj );
    },   
    options:{
        myelem:'',
        interval:900000 //1000*60*15 // 15min
    }
};

$.widget("ui.checkInbox", checkInbox);

// helper
    function objToString(o) {
        var s = '{\n';
        for (var p in o) {
			s += '    "' + p + '": "' + o[p] + '"\n';
		}
        return s + '}';
    }

    // helper
    function elementToString(n, useRefs) {
        var attr = "", nest = "", a = n.attributes;
        for (var i = 0; a && i < a.length; i++) {
			attr += ' ' + a[i].nodeName + '="' + a[i].nodeValue + '"';
		}
        if (n.hasChildNodes === false){
			
            return "<" + n.nodeName + "\/>";
		}

        for (var y=0; y < n.childNodes.length; y++) {
            var c = n.childNodes.item(y);
            if (c.nodeType == 1){ nest += elementToString(c); }      
            else if (c.nodeType == 2){attr += " " + c.nodeName + "=\"" + c.nodeValue + "\" ";}  
            else if (c.nodeType == 3){nest += c.nodeValue;}  
        }
        var s = "<" + n.nodeName + attr + ">" + nest + "<\/" + n.nodeName + ">";
        return useRefs ? s.replace(/</g,'&lt;').replace(/>/g,'&gt;') : s;
    }

