var gbox = gbox || {};
(function() {
	// functions
	
	var doColorPicker = function(idx) {
		if(!document.getElementById('colorSelector'+idx)) {

			/*var colorPickerContainer = $("div.colorpicker");
			var submitBtn = document.createElement('div');
			submitBtn.className = 'colpkr_submitBtn';
			var submitBtnLink = document.createElement('a');
			submitBtnLink.className = 'colpkr_submitBtnLink';
			submitBtn.append(submitBtnLink);
			submitBtnLink = null;
			colorPickerContainer.append(submitBtn);
			submitBtn = null;*/

			var container = $('#color'+idx).parent();
			var color =  $('#color'+idx).val();
			$('#color'+idx).remove();
			var ci = document.createElement('input');
			ci.id = 'color'+idx;
			ci.name = 'color'+idx;
			ci.type = 'hidden';
			ci.maxlength = '6';
			ci.value = color;
			container.append(ci);
			ci = null;
			var cs = document.createElement('div');
			cs.id = 'cs'+idx;
			cs.className = 'colorSelector';
			container.append(cs);
			cs = null;
			var csd = document.createElement('div');
			csd.style.backgroundColor = '#'+color;
			$('#cs'+idx).append(csd);
			csd = null;
			$('#cs'+idx).ColorPicker({
				color: '#'+color,
				onShow: function (colpkr) {
					$('#textColor').hide();
					$(colpkr).fadeIn(350);
					return false;
				},
				onHide: function (colpkr) {
					$('#textColor').show();
					$(colpkr).fadeOut(250);
					return false;
				},
				/*onChange: function (hsb, hex, rgb) {
					$('#color'+idx).val(hex);
					$('#cs'+idx+' > div').css('backgroundColor', '#' + hex);
				},*/
				onSubmit: function (hsb, hex, rgb) {
					$('#textColor').show();
					$('#color'+idx).val(hex);
					$('#cs'+idx+' > div').css('backgroundColor', '#' + hex);
					$("div.colorpicker").fadeOut(250);
				}
			});
		}
	}

	var preview = function(sizes, flashVars) {
		$('#swf-container').empty();		
		gbox.draw('swf-container', sizes, flashVars);
		
	}


	function urlencode (str) {
		var hash_map = {}, unicodeStr='', hexEscStr='';
		var ret = (str+'').toString();
		
		var replacer = function (search, replace, str) {
			var tmp_arr = [];
			tmp_arr = str.split(search);
			return tmp_arr.join(replace);
		};
		
		// The hash_map is identical to the one in urldecode.
		hash_map["'"]   = '%27';
		hash_map['(']   = '%28';
		hash_map[')']   = '%29';
		hash_map['*']   = '%2A';
		hash_map['~']   = '%7E';
		hash_map['!']   = '%21';
		hash_map['%20'] = '+';
		hash_map['\u00DC'] = '%DC';
		hash_map['\u00FC'] = '%FC';
		hash_map['\u00C4'] = '%D4';
		hash_map['\u00E4'] = '%E4';
		hash_map['\u00D6'] = '%D6';
		hash_map['\u00F6'] = '%F6';
		hash_map['\u00DF'] = '%DF';
		hash_map['\u20AC'] = '%80';
		hash_map['\u0081'] = '%81';
		hash_map['\u201A'] = '%82';
		hash_map['\u0192'] = '%83';
		hash_map['\u201E'] = '%84';
		hash_map['\u2026'] = '%85';
		hash_map['\u2020'] = '%86';
		hash_map['\u2021'] = '%87';
		hash_map['\u02C6'] = '%88';
		hash_map['\u2030'] = '%89';
		hash_map['\u0160'] = '%8A';
		hash_map['\u2039'] = '%8B';
		hash_map['\u0152'] = '%8C';
		hash_map['\u008D'] = '%8D';
		hash_map['\u017D'] = '%8E';
		hash_map['\u008F'] = '%8F';
		hash_map['\u0090'] = '%90';
		hash_map['\u2018'] = '%91';
		hash_map['\u2019'] = '%92';
		hash_map['\u201C'] = '%93';
		hash_map['\u201D'] = '%94';
		hash_map['\u2022'] = '%95';
		hash_map['\u2013'] = '%96';
		hash_map['\u2014'] = '%97';
		hash_map['\u02DC'] = '%98';
		hash_map['\u2122'] = '%99';
		hash_map['\u0161'] = '%9A';
		hash_map['\u203A'] = '%9B';
		hash_map['\u0153'] = '%9C';
		hash_map['\u009D'] = '%9D';
		hash_map['\u017E'] = '%9E';
		hash_map['\u0178'] = '%9F';
		
		// Begin with encodeURIComponent, which most resembles PHP's encoding functions
		ret = encodeURIComponent(ret);
	
		for (unicodeStr in hash_map) {
			hexEscStr = hash_map[unicodeStr];
			ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
		}
		
		// Uppercase for full PHP compatibility
		return ret.replace(/(\%([a-z0-9]{2}))/g, function (full, m1, m2) {
			return "%"+m2.toUpperCase();
		});
}
	
var populateDomains = function() {
		var lg = $('#select_lang_box a.selected').text();
		if (lg=='English') { 
			limba = 'en'; 
		} 
		else {
			limba ='ro';
		}		
		
		$.get("/ajax/"+ limba +"/?action=getDomains&q=A", function(data){

			var dom = data.split('|');
			$.get("/ajax/"+ limba +"/?action=getLetters", function(d) {
				var litere = d.split('|');				   
	
			var nr_litere = litere.length;
			for(var i = 0; i < nr_litere; i++) { 
				var li_item = document.createElement('li');
				var a_link = document.createElement('a');
				a_link.href="#";
				var txt = document.createTextNode(litere[i]);
				li_item.appendChild(a_link);
				a_link.appendChild(txt);
				$('#t-domains').append(li_item);
				if (!i) {$('#t-domains a').addClass('selected');} 
				txt='';
				li_item = null; 
				a_link = null;
			}
			
			var l = dom.length;			
			for(var i = 0; i < l; i++) {
				var li_item = document.createElement('li');
				var a_link = document.createElement('a');
				a_link.href="#";
				var txt = document.createTextNode(dom[i]);
				li_item.appendChild(a_link);
				a_link.appendChild(txt);
				$('#t-links').append(li_item);
				txt='';
				li_item = null;
				a_link = null;
			}
			
			$('ul#t-domains li a').click( function() {
				$(this).parent().parent().find('a.selected').removeClass('selected');				
				$(this).addClass('selected');
				var lit = urlencode($(this).text());
				$.get("/ajax/"+ limba +"/?action=getDomains&q="+lit, function(data){
					$('#t-links').empty();
					var v = data.split('|');
					var l = v.length;
					for(var i = 0; i < l; i++) {
						var li_item = document.createElement('li');
						var a_link = document.createElement('a');
						a_link.href="#";
						var txt = document.createTextNode(v[i]);
						li_item.appendChild(a_link);
						a_link.appendChild(txt);
						$('#t-links').append(li_item);
						txt='';
						li_item = null;
						a_link = null;
					}
		 	 	});
				return false;
			});
		});
	}); 

}


var populateLocations = function() {
		var lg = $('#select_lang_box a.selected').text();
		if (lg=='engleza' || lg=='English') { 
			limba = 'en'; 
		} 
		else {
			limba ='ro';
		}
		
		$.get("/ajax/"+ limba +"/?action=getRegions", function(data){
			var regiune = data.split('|');
			var l = regiune.length;
			for(var i = 0; i < l; i++) {
				if($.trim(regiune[i]).length > 1) {
					var option_item = document.createElement('option');
					option_item.value = regiune[i];
					var txt = document.createTextNode(regiune[i]);
					option_item.appendChild(txt);
					$('#t-regions').append(option_item);
					txt='';
					option_item = null;
				}
			}
			$('#select_judet').remove();
			$('a.final').remove();
				$('span.pipe').remove();
				var link_more = document.createElement('a'); 
				link_more.href='#';
				link_more.id = 'select_judet';
				if (limba == 'ro') {
					var txt = document.createTextNode('Selectează judeţ');	
				} else {
					var txt = document.createTextNode('Select county');	
				}
				link_more.appendChild(txt);
				$('#t-regions').after(link_more);
				var finalizare = document.createElement('a');
				finalizare.href='#';
				finalizare.className="final";
				if (limba == 'ro') {
					var text = document.createTextNode('Finalizare');	
				} else {
					var text = document.createTextNode('Finish');	
				}
				finalizare.appendChild(text);
				$('#select_judet').after(finalizare).after('<span class="pipe"> | </span>');
				$('#t-regions').change( function() {  
					var reg = urlencode($('#t-regions :selected').val());
					if ($('#t-judete').html()) {
						$.get("/ajax/"+ limba +"/?action=getCounties&region="+reg, function(data) {
							var jud = data.split('|');
							$('#t-judete').empty();
							for(var i = 0; i < jud.length; i++) {
								var option_item = document.createElement('option');
								option_item.value = jud[i];
								var txt = document.createTextNode(jud[i]);
								option_item.appendChild(txt);
								$('#t-judete').append(option_item);
								txt='';
								option_item = null;
							}
							$('#t-judete').nextAll().remove();
							var link_more = document.createElement('a');
							link_more.href='#';
							link_more.id = 'select_loc';
							if (limba == 'ro') { 
							var txt = document.createTextNode('Selectează localitate');	
							} else {
							var txt = document.createTextNode('Select city');
							}
									
							link_more.appendChild(txt);
							$('#t-judete').after(link_more);
									
							var finalizare = document.createElement('a');
							finalizare.href='#';
							finalizare.className="final";
							if (limba == 'ro') {
								var text = document.createTextNode('Finalizare');	
							} else {
								var text = document.createTextNode('Finish');	
							}
							finalizare.appendChild(text);
							$('#select_loc').after(finalizare).after('<span class="pipe"> | </span>');
							$('#select_loc').click(function() {
								$(this).hide();
								$('a.final').remove();
								$('span.pipe').remove();
								var select_loc_header = document.createElement('h2');
								select_loc_header.className = "header";
								if (limba == 'ro') { 
									var t = document.createTextNode('Selectează localitate');	
								} else {
									var t = document.createTextNode('Select city');
								}
								
								select_loc_header.appendChild(t);
								$('#select_loc').after(select_loc_header);
								var loc = document.createElement('select');
								loc.id = 't-loc';
								$('#regions').append(loc);
								var jud = urlencode($('#t-judete :selected').val());
								$.get("/ajax/"+ limba +"/?action=getCities&county="+ jud + '&' + (new Date()).getTime(), function(data) {
									var loc = data.split('|');
									for(var i = 0; i< loc.length; i++) {
										var option_item = document.createElement('option');
										option_item.value = loc[i];
										var txt = document.createTextNode(loc[i]);
										option_item.appendChild(txt);
										$('#t-loc').append(option_item);
										txt='';
										option_item = null;
	
									}
									
									var finalizare = document.createElement('a');
									finalizare.href='#';
									finalizare.className="final";
									if (limba == 'ro') {
										var text = document.createTextNode('Finalizare');	
									} else {
										var text = document.createTextNode('Finish');	
									}
									finalizare.appendChild(text);
									$('#t-loc').after(finalizare);
								});
								return false;								
							});
						});

					}
					//remove cities if selected
				});
				$('#select_judet').click(function() {
					$(this).hide();
					$('a.final').remove();
					$('span.pipe').remove();
					var select_judet_header = document.createElement('h2');
					if (limba == 'ro') {
						var t = document.createTextNode('Selectează judeţ');
					} else {
						var t = document.createTextNode('Select county');
					}
					select_judet_header.appendChild(t);
					$('#select_judet').after(select_judet_header);
					var judete = document.createElement('select');
					judete.id = 't-judete';
					$('#regions').append(judete);
					var reg = urlencode($('#t-regions :selected').val());
					$.get("/ajax/"+ limba +"/?action=getCounties&region="+reg, function(data) {
						var jud = data.split('|');
						for(var i = 0; i < jud.length; i++) {
							var option_item = document.createElement('option');
							option_item.value = jud[i];
							var txt = document.createTextNode(jud[i]);
							option_item.appendChild(txt);
							$('#t-judete').append(option_item);
							txt='';
							option_item = null;
						}
							var link_more = document.createElement('a');
							link_more.href='#';
							link_more.id = 'select_loc';
							if (limba == 'ro') { 
								var txt = document.createTextNode('Selectează localitate');	
							} else {
								var txt = document.createTextNode('Select city');
							}
							
							link_more.appendChild(txt);
							$('#t-judete').after(link_more);
							
							var finalizare = document.createElement('a');
							finalizare.href='#';
							finalizare.className="final";
							if (limba == 'ro') {
								var text = document.createTextNode('Finalizare');	
							} else {
								var text = document.createTextNode('Finish');	
							}
							finalizare.appendChild(text);
							$('#select_loc').after(finalizare).after('<span class="pipe"> | </span>');
							$('#t-judete').change( function() {
								var jud = urlencode($('#t-judete :selected').val());
								if ($('#t-loc').html()) {
									$.get("/ajax/"+ limba +"/?action=getCities&county="+ jud, function(data) {
										var loc = data.split('|');
										$('#t-loc').empty();
										for(var i = 0; i < loc.length; i++) {
											var option_item = document.createElement('option');
											option_item.value = loc[i];
											var txt = document.createTextNode(loc[i]);
											option_item.appendChild(txt);
											$('#t-loc').append(option_item);
											txt='';
											option_item = null;
										}
									});
						 }															
							});
							$('#select_loc').click(function() {
								$(this).hide();
								$('a.final').remove();
								$('span.pipe').remove();
								var select_loc_header = document.createElement('h2');
								select_loc_header.className = "header";
								if (limba == 'ro') { 
									var t = document.createTextNode('Selectează localitate');	
								} else {
									var t = document.createTextNode('Select city');
								}
								
								select_loc_header.appendChild(t);
								$('#select_loc').after(select_loc_header);
								var loc = document.createElement('select');
								loc.id = 't-loc';
								$('#regions').append(loc);
								var jud = urlencode($('#t-judete :selected').val());
								$.get("/ajax/"+ limba +"/?action=getCities&county="+ jud + '&' + (new Date()).getTime(), function(data) {
									var loc = data.split('|');
									for(var i = 0; i< loc.length; i++) {
										var option_item = document.createElement('option');
										option_item.value = loc[i];
										var txt = document.createTextNode(loc[i]);
										option_item.appendChild(txt);
										$('#t-loc').append(option_item);
										txt='';
										option_item = null;
	
									}
									
									var finalizare = document.createElement('a');
									finalizare.href='#';
									finalizare.className="final";
									if (limba == 'ro') {
										var text = document.createTextNode('Finalizare');	
									} else {
										var text = document.createTextNode('Finish');	
									}
									finalizare.appendChild(text);
									$('#t-loc').after(finalizare);
								});
							});
					});
					return false;
																								   
				});
		});			
}
			
	$(function() {
		$('#previewWidget, span.help_icon').mouseover(function() {
			$(this).css('cursor','pointer');			
		});
		$('#concursWidget, span.help_icon').mouseover(function() {
			$(this).css('cursor','pointer');
		});

		$('input#sendCodeButton').mouseover( function() {
			$(this).addClass('hover');													  
		});
		
		$('input#sendCodeButton').mouseout( function() {
			$(this).removeClass('hover');													  
		}); 
		
		var lg = $('#select_lang_box a.selected').text();
		if (lg == 'English') { 
			limba = 'en'; 
		} 
		else {
			limba ='ro';
		}
		
		$('input#sendCodeButton').click( function() {
			var email= $('input#sendCode').val();
			var code = $('textarea#code').val();
			$.post('/send_email.php', {email: email, code: code, lang: limba}, 
				   function(data) {
					 $('p.email_response').text(data).animate(2000);					
				   });
			return false;
		});
		

		
		$('.help_icon').each(function() {
			$(this).simpletip({
				content: $(this).attr('alt'),
				baseClass: 'tooltip2',
				position: 'right'
			});
		}); 
		
	
		$('a#domainsCustom').qtip({
			content: { 
				text: "Loading..."					
			},
			show: { 
			 	when: "click"
			 },
			 url: $(this).attr('rel'),				 
			 hide: 'unfocus',
			 position: {
      			corner: {
         			target: 'bottomMiddle', 
               		tooltip: 'topMiddle'
      			}
   			},
			style: {
				border:0,
				width: 450
			},			
			api: {
			 	 beforeShow: function() { 
				 	if (limba=='en') { 
						this.loadContent('/en/domains.html?'+(new Date()).getTime());
					} 
					else {
						this.loadContent('/domains.html?'+(new Date()).getTime());
					}
				},
				onShow: function() {
					populateDomains();
				}									 	
			 } 
		});	

		$('#locationCustom').qtip({
			content: "Loading...",
			show: { 
			 	when: "click"
			 },
			 hide: 'unfocus',
			 position: {
      			corner: {
         			target: 'bottomMiddle', 
               		tooltip: 'topMiddle'
      			}
   			},
			style: {
				border:0,
				width: 450
			}, 		
			api: {
				 beforeShow: function() { 
				 	if (limba=='en') { 
						this.loadContent('/en/regions.html?'+(new Date()).getTime());
					} 
					else {
						this.loadContent('/regions.html?'+(new Date()).getTime());
					}
				 },
				 onShow: function() {
					populateLocations(); 
				 }						 	
			 } 
		}); 

		$('.t-close').live('click', function() { 
			$("#domainsCustom").qtip("hide");
			$("#locationCustom").qtip("hide");
			return false;
		}); 
		
		$('ul#t-links li a').live('click', function() {
			
			$("#domainsCustom").qtip("hide");			
			$('#categ_selected').remove();
			var categ_selected = document.createElement('p');
			categ_selected.id = "categ_selected";
			var txt = document.createTextNode($(this).text()); 
			categ_selected.appendChild(txt);
			$('a#domainsCustom').before(categ_selected);
			categ_selected = null;
			txt ='';
			$('#domainsAll').removeAttr("checked");
			$('a#locationCustom').hide();
			return false;
		});
		
		$('#domainsAll').live('click', function() {
			$('#categ_selected').remove();
			$('a#locationCustom').show();
			return false;
		});
		$('#locationAll').live('click', function() {
			if ($(this).val()=='all') { 
				$('#loc_selected').remove();
				$('a#domainsCustom').show();
			}
			return false;
		});
		
		$('a.final').live('click', function() {
			$("#locationCustom").qtip("hide");			
			var locatie_selectata = $(this).parent().find("select option:selected").filter(':last').text();	
			$('#loc_selected').remove();
			var loc_selected = document.createElement('p');
			loc_selected.id = "loc_selected";
			var txt = document.createTextNode(locatie_selectata); 
			loc_selected.appendChild(txt);
			$('a#locationCustom').before(loc_selected);
			loc_selected = null;
			txt ='';
			$('#locationAll').removeAttr("checked");
			$('a#domainsCustom').hide();
			return false;
		}); 
		
		// do stuff;
		if ($('#previewWidget').size()) {
			doColorPicker('1');
		}
		// events;
		$('#previewWidget').bind('click', function(e) {
			
			var predefinedSizes = [
				{w:120, h:240},
				{w:120, h:600},
				{w:125, h:250},
				{w:160, h:600},
				{w:300, h:250},
				{w:430, h:200},
				{w:468, h:60},				
				{w:728, h:90}
				
			]
			
			var roundedCorners = $('#corners').val() == '1' ? 'true' : 'false';
			var isDark = $('#textColor').val() == '1' ? 'true' : 'false';

			var color = $('#color1').val();
			var type = $('#style').val();
			
			var lg = $('#select_lang_box a.selected').text();
			if (lg == 'engleza' || lg == 'English') { 
				limba = 'en'; 
			} 
			else {
				limba ='ro';
			}			

			/*if ($('#categ_selected').text()) { 
				var domeniu = null;
				
				if($('#size').val() == 5 || $('#size').val() == 7) {
					var categPices = $('#categ_selected').text().split(', ');
					if ($('#categ_selected').text().split(', ').length > 2 ) { 
						domeniu = encodeURIComponent(categPices[0]+', '+categPices[1]);
					} 
					else {
						domeniu = encodeURIComponent(categPices[0]);
					}
					
				}
				else if($('#size').val() == 4) {
					domeniu = encodeURIComponent($('#categ_selected').text());
				}
				else {
					var categPices = $('#categ_selected').text().split(', ');
						
					domeniu = encodeURIComponent(categPices[0]);
				}
			} 
			else {
				var domeniu = '';
			}  */  
			
			if ($('#categ_selected').text()) { 
				domeniu = encodeURIComponent($('#categ_selected').text());
			} 
			else {
				domeniu = '';
			}  
			
			
			if($('#loc_selected').text()) {
				var locatia = $('#loc_selected').text();			
			}
			else {
				var locatia = '';
			} 

			//var fv = '{"round":'+roundedCorners+',"tc":'+isDark+',"color":"0x'+color+'","t":"'+type+'","lg":"'+ lang +'"}';
			var fv = 'round='+ roundedCorners +'&tc=' + isDark + '&color=0x' + color + '&t=' + type + '&lg=' + limba +'&l=' + domeniu + '&d=' + locatia;
			//var fv = 'tc=true&t=g&lg=en';
			
			var pa = {};
			pa['ro'] = 'http://www.paginiaurii.ro';
			pa['en'] = 'http://en.paginiaurii.ro';
			var pa_text = {};
			pa_text['ro'] = 'Pagini Aurii';
			pa_text['en'] = 'Romanian Yellow Pages';
			var gb = {}
			gb['ro'] = 'http://www.goldenbox.ro';
			gb['en'] = 'http://www.goldenbox.ro/en';
			var gb_text = {};
			gb_text['ro'] = 'Vreau casuta mea';
			gb_text['en'] = 'Make your own Yellow Pages search box.';
			
			//actualizez codul in textarea 
			var hash = '__MD5__';
			var w = predefinedSizes[$('#size').val()]['w'];
			var h = predefinedSizes[$('#size').val()]['h'];
			var swf = gbox.swf+'?w='+w+'&h='+h+'&'+fv+'&_='+(new Date()).getTime();

			var objHtml = '<object id="'+gbox.widgetID+'-swf" type="application/x-shockwave-flash" data="'+swf+'" width="'+w+'" height="'+h+'">'+
                                '<param name="movie" value="'+swf+'" />'+
                                '<param name="wmode" value="transparent" />'+
								'<param name="allowScriptAccess" value="always" />'+
                                '<param name="quality" value="high" />'+
								'</object>';
			var sc = 'function modifyHeight(h){document.getElementById("'+ gbox.widgetID + '-swf").height=h;}';	
			var js = 'var container = document.getElementById("' + gbox.widgetID + predefinedSizes[$('#size').val()]['w'] + 'x' + predefinedSizes[$('#size').val()]['h'] + 'x' + type + '"); container.parentNode.removeChild(container); document.write(\'<div id="' + gbox.widgetID + predefinedSizes[$('#size').val()]['w'] + 'x' + predefinedSizes[$('#size').val()]['h'] + 'x' + type +'">' + objHtml + '</div>\'); ' + sc;

			//preview(predefinedSizes[$('#size').val()], 'w='+w+'&h='+h+'&'+fv+'&_='+(new Date()).getTime());
			$('#preview').html(objHtml);
			

			$.post('/ajax/'+limba+'/?action=saveCode', {'code': js}, function (data, status) {
				if(status == 'success' || status == 'notmodified') {
					var hash = $.trim(data);
					var cod = '<div id="'+gbox.widgetID + predefinedSizes[$('#size').val()]['w'] + 'x' + predefinedSizes[$('#size').val()]['h'] + 'x' + type +'">'+
						'<a href="' + pa[limba] + '">'+ pa_text[limba] +'</a>'+
						' | '+
						'<a href="' + gb[limba] + '">' + gb_text[limba] + '</a>'+
					'</div>'+
					'<script type="text/javascript" src="' + document.location.protocol + '//' + document.location.hostname +(limba == 'en' ? '/en/' : '/')+'js.php?action=getCode&h='+hash+'"></script>';					
					cod = $.trim(cod);
					$('#code').empty();
					$('#code').val(cod);
				}
			});
		
			e.preventDefault();
			e.stopPropagation(); 
			return false;
		});

		function validateEmail(email) {
			var filter = /^[a-zA-Z]([a-zA-Z0-9-_\.])*(\.[a-zA-Z0-9-_])*@[a-zA-Z0-9](([a-zA-Z0-9\-\_\.])*)+\.[a-zA-Z]{2,4}$/;
			var result = filter.test(email);
			
			return result;
		}

		function validateUrl(url) {
			var filter = /http(|s)\:\/\/([A-Za-z0-9\.-]{1,})\.[A-Za-z]{2,}(\/|)$/;
			var result = filter.test(url);
			
			return result;
		}
		function validateName(url) {
			var filter = /^([A-Za-z\s]{3,})$/;
			var result = filter.test(url);

			return result;
		}
		function doPreviewSubmit(isSubmit){

			var predefinedSizes = [
				{w:120, h:240},
				{w:120, h:600},
				{w:125, h:250},
				{w:160, h:600},
				{w:300, h:250},
				{w:430, h:200},
				{w:468, h:60},
				{w:728, h:90}

			];
			var imgPredefinedSizes = [ {w:125, h:250}, {w:200, h:300}, {w:250, h:300} ];

			var roundedCorners = $('#corners').val() == '1' ? 'true' : 'false';
			var isDark = $('#textColor').val() == '1' ? 'true' : 'false';

			var color = $('#color1').val();
			var type = $('#style').val();

			var lg = $('#select_lang_box a.selected').text();
			if (lg == 'engleza' || lg == 'English') {
				limba = 'en';
			}
			else {
				limba ='ro';
			}

			if ($('#categ_selected').text()) {
				domeniu = encodeURIComponent($('#categ_selected').text());
			}
			else {
				domeniu = '';
			}


			if($('#loc_selected').text()) {
				var locatia = $('#loc_selected').text();
			}
			else {
				var locatia = '';
			}
			var supporterOf = $('#so').val();

			var fv = 'round=1&tc=1&color=0xfef000&t=f&lg=' + limba +'&l=' + domeniu + '&d=' + locatia + '&so=' + supporterOf;

			var pa = {};
			pa['ro'] = 'http://www.paginiaurii.ro';
			pa['en'] = 'http://en.paginiaurii.ro';
			var pa_text = {};
			pa_text['ro'] = 'Pagini Aurii';
			pa_text['en'] = 'Romanian Yellow Pages';
			var gb = {}
			gb['ro'] = 'http://www.goldenbox.ro';
			gb['en'] = 'http://www.goldenbox.ro/en';
			var gb_text = {};
			gb_text['ro'] = 'goldenbox.ro';
			gb_text['en'] = 'goldenbox.ro';


			//actualizez codul in textarea
			var hash = '__MD5__';
			var w = predefinedSizes[$('#size').val()]['w'];
			var h = predefinedSizes[$('#size').val()]['h'];

			var swf = gbox.concursSwf+'?w='+w+'&h='+h+'&'+fv+'&_='+(new Date()).getTime();

			var objHtml = '<object id="'+gbox.widgetID+'-swf" type="application/x-shockwave-flash" data="'+swf+'" width="'+w+'" height="'+h+'">'+
                                '<param name="movie" value="'+swf+'" />'+
                                '<param name="wmode" value="transparent" />'+
								'<param name="allowScriptAccess" value="always" />'+
                                '<param name="quality" value="high" />'+
								'</object>';
			var sc = 'function modifyHeight(h){document.getElementById("'+ gbox.widgetID + '-swf").height=h;} ' +
					 'function getCurrentLocation(){return document.location.hostname;}';
			var js = 'var container = document.getElementById("' + gbox.widgetID + predefinedSizes[$('#size').val()]['w'] + 'x' + predefinedSizes[$('#size').val()]['h'] + 'x' + type + '"); container.parentNode.removeChild(container); document.write(\'<div id="' + gbox.widgetID + predefinedSizes[$('#size').val()]['w'] + 'x' + predefinedSizes[$('#size').val()]['h'] + 'x' + type +'">' + objHtml + '</div>\'); ' + sc;

			//preview(predefinedSizes[$('#size').val()], 'w='+w+'&h='+h+'&'+fv+'&_='+(new Date()).getTime());
			if (usesJavascritptOption == true) {
				$('#preview').html(objHtml);
			} else {
				w = imgPredefinedSizes[$('#imgSize').val()]['w'];
				h = imgPredefinedSizes[$('#imgSize').val()]['h'];
				objHtml = '<img id="pa-widget-img" width="'+w+'" height="'+h+'" style="padding: 20px;" alt="'+supporterOf+'" src="'+gbox.concursImg+'pa-wblogs-'+w+'x'+h+'-'+supporterOf+'.jpg">';
				$('#previewImg').html(objHtml);
			}


			if(isSubmit != true) return;
			
			var email= $('input#email').val();
			var blogUrl = $('input#blogUrl').val();
			var numePrenume = $('input#numePrenume').val();

			$('p.email_response').text('');$('p.blogUrl_response').text('');$('p.name_response').text('');$('p.rulesAgree_response').text('');

			if (validateEmail(email) && validateUrl(blogUrl) && validateName(numePrenume) && $('#rulesAgree').is(':checked')) {

				if( usesJavascritptOption == true) {
					var jsSrc = '<div id="'+gbox.widgetID + predefinedSizes[$('#size').val()]['w'] + 'x' + predefinedSizes[$('#size').val()]['h'] + 'x' + type +'">'+ '<a href="' + pa[limba] + '">'+ pa_text[limba] +'</a>'+ ' | '+ '<a href="' + gb[limba] + '">' + gb_text[limba] + '</a>'+ '</div>'+ '<script type="text/javascript" src="' + document.location.protocol + '//' + document.location.hostname +(limba == 'en' ? '/en/' : '/')+'js.php?action=concurs&h=@###@'+'"></script>';
					$.post('/ajax/'+limba+'/?action=saveCode', {'code': js, 'src':jsSrc, 'so': supporterOf, 'name': $('#numePrenume').val(), 'blog':$('#blogUrl').val(), 'email':$('#email').val()}, function (data, status) {
						if(status == 'success' || status == 'notmodified') {
							var hash = $.trim(data);
							var cod = '<div id="'+gbox.widgetID + predefinedSizes[$('#size').val()]['w'] + 'x' + predefinedSizes[$('#size').val()]['h'] + 'x' + type +'">'+
								'<a href="' + pa[limba] + '">'+ pa_text[limba] +'</a>'+
								' | '+
								'<a href="' + gb[limba] + '">' + gb_text[limba] + '</a>'+
							'</div>'+
							'<script type="text/javascript" src="' + document.location.protocol + '//' + document.location.hostname +(limba == 'en' ? '/en/' : '/')+'js.php?action=concurs&h='+hash+'"></script>';
							cod = $.trim(cod);
							$('#code').empty();
							$('#code').val(cod);
						}
					});
				} else {
					// img version
					var jsSrc = '<div id="'+gbox.widgetID + w + 'x' + h + '">'+
							'<a href="http://www.goldenbox.ro/concurs/" target="_blank" title="Pagini Aurii te trimite in China sau in Londra, intra in concurs!">'+
							'<img border=0 style="border:0;margin:0;padding:0" width="'+w+'" height="'+h+'" alt="Pagini Aurii te trimite in China sau in Londra, intra in concurs!" src="'+ document.location.protocol + '//' + document.location.hostname + '/concurs/widget/?img=@###@.jpg" />'
							+'</a>'+
						'</div>';
					$.post('/ajax/'+limba+'/?action=saveCode', {'code': jsSrc, 'src':jsSrc, 'so': supporterOf, 'name': $('#numePrenume').val(), 'blog':$('#blogUrl').val(), 'email':$('#email').val(), 'imgCode': w+'x'+h}, function (data, status) {
						if(status == 'success' || status == 'notmodified') {
							var hash = $.trim(data);
							var cod = jsSrc.toString().replace('@###@', hash);
							cod = $.trim(cod);
							$('#code').empty();
							$('#code').val(cod);
						}
					});
				}
			} else {
				if (! $('#rulesAgree').is(':checked')) {
					$('p.rulesAgree_response').text('Pentru a participa trebuie sa fiti de acord cu regulamentul.').animate(2000);
				}
				if (! validateEmail(email)) {
					$('p.email_response').text('Adresa de email nu este valida.').animate(2000);
				}
				if (! validateUrl(blogUrl)) {
					$('p.blogUrl_response').text('Adresa blogului nu este valida.').animate(2000);
				}
				if (! validateName(numePrenume)) {
					$('p.name_response').text('Va rugam sa va introduceti numele.').animate(2000);
				}
			}
			return false;
		}
		$('#concursWidget').bind('click', function(e) {
			doPreviewSubmit(true);
			e.preventDefault();
			e.stopPropagation();
			return false;
		});
		$('#concursPreviewWidget').bind('click', function(e) {
			doPreviewSubmit(false);
			e.preventDefault();
			e.stopPropagation();
			return false;
		});

		if ($('#concursPreviewWidget').size()) {
			$('#format_flash').attr('checked','checked');
			switchTo('flash');

			$('#restrictions').find('input[type=radio]').each(function (){
				var that = this;
				$(this).bind('change', function (){
					switchTo($(that).val());
				});
			});


		}

	});

})();
var usesJavascritptOption = true;

function switchTo(tip){
	if (tip == 'img'){
		usesJavascritptOption = false;
		$('fieldset#looks').hide();
		$('fieldset#functions').hide();
		$('div#preview').hide();

		$('fieldset#looksImg').show();
		$('div#previewImg').show();

	} else {
		usesJavascritptOption = true;
		$('fieldset#looksImg').hide();
		$('div#previewImg').hide();

		$('fieldset#looks').show();
		$('fieldset#functions').show();
		$('div#preview').show();
	}
	return false;
}
