      var MIN_AREA_LENGTH = 10;
      var MAX_AREA_LENGTH = 15;
      var SEARCH_RESULTS_PER_PAGE = 15;
      var SAVED_POINTS_PER_PAGE = 10;
   
      var MARKER_HEIGHT = 40.0;
      var MAPTYPE_MAP = "Map";
      var MAPTYPE_SATELLITE = "Satellite";
      var MAPTYPE_HYBRID = "Hybrid";
      
      var areaCache = {};
      var searchResultsRoad = {};      
      var searchResultsCounter = 0;
      var map;
      var is_poly;
      
      var mobGeo;
      var svrUrlMob = 'http://home.ploigos.gr:13245/cityofathens/coa';//
      var svrUrl;
      var imageURL;
//      var svrUrl = 'http://www.illegalsigns.gov.gr:8080/illegalsigns';
//      var imageURL = 'http://www.illegalsigns.gov.gr:8080/illegalsigns/images';
//      var svrUrl = 'http://home.ploigos.gr:13245/illegalsigns';
//      var imageURL = 'http://home.ploigos.gr:13245/illegalsigns/images';
      
      var iconSelectedPoint;
      var iconIllegalPoint;
      var offset;
      var userPointIcons = [];
      var userPointIconsIdx =0;
      var marker;
      var lng;
      var lat;
      
      var address_mark;
      var address_lat;
      var address_lng;
      
      var selectedPoints = [];
      var selectedPointsCounter = 0;
      var selectedPointsPage = 0;
      
      var photo_uploaded=0;
      
      var currentRoad;
      
      var testMarker;      
      
function getStandardIconParams() {
          var m = new GIcon();
          //m.shadow = 'http://'+contextURL+'/images/markers/shadow50.png';
          m.shadow = 'images/markers/shadow50.png';
     //     m.iconSize = new GSize(26, 40);
     //     m.shadowSize = new GSize(37, 34);
          m.iconAnchor = new GPoint(12, 39);
          m.infoWindowAnchor = new GPoint(13, 2);
          m.infoShadowAnchor = new GPoint(18, 35);
          return m;
}

function initIcons() {
        var t;      

        function setIconSpecials() {
          var t = getStandardIconParams();
          //t.image = 'http://'+contextURL+'/images/markers/Scaled_Default.png';
          t.image = 'images/markers/Scaled_Default.png';
          iconSelectedPoint = t;          
          var m = getStandardIconParams();
          m.image = 'images/markers/Scaled_Purple.png';
          iconIllegalPoint = m;
        }
          
        function addUserPointIcon(img) {
            var t = getStandardIconParams();
            //t.image = 'http://'+contextURL+'/images/markers/Scaled_'+img+'.png';
            t.image = 'images/markers/Scaled_'+img+'.png';
            userPointIcons.push(t);
        }      
        addUserPointIcon('Default');        
        setIconSpecials();
}
 
function addAddressMarker(idx){
	if(address_mark)
	 map.removeOverlay(address_mark);
         
	 currentRoad = selectedPoints[idx].data;         
        address_lat=selectedPoints[idx].data.pointY;
        address_lng = selectedPoints[idx].data.pointX;
	$('#results').slideUp('fast');	
          
         var is_latlng = new GLatLng(address_lat,address_lng);
         revGeocode(markerInMunic,address_lat ,address_lng);
         
/*	if (poly_contains_is(is_latlng,is_poly)){
          mobGeo.addMarker('User',address_lat,address_lng,currentRoad);
           map.setCenter(new GLatLng(address_lat,address_lng));	
	$('#report_road_name').val(currentRoad.foundAs);
          
        }
         else {
          //Για την περιοχή που ζητάς δεν δεχόμαστε ακόμα καταγγελίες. Εργαζόμαστε ώστε να συμπεριληφθεί σύντομα.
          var st='<table style="width100%;font-weight:bold">';
          st+= '<tr><td style="height:25px">&nbsp;Για την περιοχή που ζητάς </td></tr><td style="height:25px">&nbsp;δεν δεχόμαστε ακόμα καταγγελίες. </td></tr><tr><td style="height:25px">&nbsp;Εργαζόμαστε ώστε </td></tr><tr><td style="height:25px">&nbsp;να συμπεριληφθεί σύντομα.</td></tr>';
          st+='<tr><td style="height:25px">&nbsp;<a href="http://www.illegalsigns.gov.gr/?page_id=7" style="font-size:9px;font-weight:normal">Διάβασε πως να συμπληρώσεις την φόρμα σωστά</a></td></tr>';
          st+='<tr><td align="right"><a href="javascript:showForm(1)" style="text-decoration:none"><img src="'+imageURL+'/back_button.png"></a></td></tr></table>';
          $('#form_main_body').css('display','none');          
          $('#form_messages').html(st);
          $('#form_messages').css('display','');
         }*/        
	 slideUpDiv('results_div');	 
}

function markerInMunic(data){
       if ((data.results[0])&&(insideMunicipalities(data.results[0].roadMunicipality))){
          mobGeo.addMarker('User',address_lat,address_lng,currentRoad);
           map.setCenter(new GLatLng(address_lat,address_lng));
           map.setZoom(17);
	$('#report_road_name').val(currentRoad.foundAs);
          
        }
         else {
          //Για την περιοχή που ζητάς δεν δεχόμαστε ακόμα καταγγελίες. Εργαζόμαστε ώστε να συμπεριληφθεί σύντομα.
          var st='<table style="width100%;font-weight:bold">';
          st+= '<tr><td style="height:25px">&nbsp;Για την περιοχή που ζητάς </td></tr><td style="height:25px">&nbsp;δεν δεχόμαστε ακόμα καταγγελίες. </td></tr><tr><td style="height:25px">&nbsp;Εργαζόμαστε ώστε </td></tr><tr><td style="height:25px">&nbsp;να συμπεριληφθεί σύντομα.</td></tr>';
          st+='<tr><td style="height:25px">&nbsp;<a href="http://www.illegalsigns.gov.gr/?page_id=7" style="font-size:9px;font-weight:normal">Διάβασε πως να συμπληρώσεις την φόρμα σωστά</a></td></tr>';
          st+='<tr><td align="right"><a href="javascript:showForm(1)" style="text-decoration:none"><img src="'+imageURL+'/back_button.png"></a></td></tr></table>';
          $('#form_main_body').css('display','none');          
          $('#form_messages').html(st);
          $('#form_messages').css('display','');
         }
}

function showIFrame(){
          $('#photo_input').css('display','none');
          $('#action').css('display','none');
          $('#upload_target').css('display','');
         // $('#report_comments').css('background','url("http://www.illegalsigns.gov.gr:8080/illegalsigns/images/textarea_small.png")');
         // $('#report_comments').css('height','63px');
}

function submitReport(){
          
	var pre_check = 0;
	var name = $('#report_name').val();
	var road_name = $('#report_road_name').val();
	var road_number = $('#report_road_number').val();	
	var address = road_name + ' '+road_number;
//	var sign_type = $('#report_sign_type').val();	
	var photo = $('#file1').val();	
	
        if(photo.lastIndexOf("\\")>-1)
		photo = photo.substr(photo.lastIndexOf("\\")+1,photo.lentgth);
        
                
	var email = $('#report_email').val();
	var follow_up = $('input[name=report_follow_up]:checked').val();
	var comments = $('#report_comments').val();

	var st='<table style="width100%;font-weight:bold">';
	if(road_name==''){
		st+= '<tr><td style="height:25px">Δεν έχεις συμπληρώσει την οδό</td></tr>';                
		pre_check=1;                
	}	
	if(email==''){
		st+='<tr><td style="height:25px">Δεν έχεις συμπληρώσει το email</td></tr>';
		pre_check=1;                
                
	}
        
          var city="ΑΘήνα";
                    if($('#report_city').val()==0)
                          city="Θεσσαλονίκη";
        
//	if (!address_lat){                    
//		st+='<tr><td style="height:25px">Δεν έχεις ανεβάσει φώτο</td></tr>';
//		pre_check=1;                
//	}
	if(photo_uploaded==0){
                    
			st+='<tr><td style="height:25px">Δεν έχεις ανεβάσει φωτογραφία</td></tr>';
			pre_check=1;
	  }
          else {
                 /*   var frame =document.getElementById("upload_target");          
                    frame=window.frames["upload_target"].document.getElementId('photo_up').value;
                    if (frame=="notUp"){
                              st+='<tr><td style="height:25px">Δεν έχεις ανεβάσει φωτογραφία</td></tr>';
                              pre_check=1;
                    }*/
          }

	if (pre_check==0) mobGeo.submitForm(checkSubmit,name,photo,address,address_lat,address_lng,email,follow_up,comments,0,1,city);
	else{
           st+='<tr><td style="height:25px">&nbsp;<a href="http://www.illegalsigns.gov.gr/?page_id=7" style="font-size:9px;font-weight:normal">Διάβασε πως να συμπληρώσεις την φόρμα σωστά</a></td></tr>';
          st+='<tr><td align="right"><a href="javascript:showForm()" style="text-decoration:none"><img src="'+imageURL+'/back_button.png"></a></td></tr></table>';
          $('#form_main_body').css('display','none');
          $('#form_messages').html(st);
          $('#form_messages').css('display','');
        }
} 

function checkSubmit(data){                   
          if(data[0].code==0){                    
                    //$('#form_submit_overview').html('<font color="green"><b>ok!</b></font>');
                    $('#form_main_body').css('display','none');                    
                    var st='<table style="width:100%"><tr><td align="center"><img src="'+imageURL+'/success.png"></td></tr>';
                    st+='<tr><td style="line-height:25px" align="left"><b>H καταγγελία σου καταχωρήθηκε<br>με επιτυχία. Εμείς θα την<br>επιβεβαιώσουμε και στην συνέχεια<br>θα κινήσουμε τις νόμιμες διαδικασίες<br>για την αποξύλωση της πινακίδας<br>εφόσον είναι παράνομη</b></td></tr>';
                    st+='<tr><td align="right"><a href="javascript:showForm()" style="text-decoration:none"><img src="'+imageURL+'/back_button.png"></a></td></tr></table>';
                    $('#form_messages').html(st);
                    $('#form_messages').css('display','');
                    clearForm();
	  }
//	  else $('#form_submit_overview').html('<font color="red"><b>Παρουσιάστηκε πρόβλημα παρακαλώ δοκιμάστε ξανά...</b></font>');  
}

function showForm(opt){
          $('#form_main_body').css('display','');
          $('#form_messages').css('display','none');
          if(opt==1) clearForm();
          
}

function clearForm(){
	$('#report_name').val('');
	$('#report_road_name').val('');
	$('#report_road_number').val('');		
	 $('#report_email').val('');
	$('input[name=report_follow_up]:checked').val(1);
	$('#report_comments').val('');
        if(address_mark)
          map.removeOverlay(address_mark);
	updateIllegalSigns();
	address_lat=null;
	address_lng=null;
        currentRoad=null;
	photo_uploaded = 0;
        $('#file1').val('');
         $('#photo_input').css('display','');
         $('#action').css('display','');
          $('#upload_target').css('display','none');
	$('#upload_form').css('display','none');
	$('#report_photo_submit').removeAttr('disabled');
        $('#action').removeAttr('disabled');
}

function autoGeo(event){          
          if((event.keyCode==13)||(event.keyCode==27) )slideUpDiv('results')
          else{
                    
                    var streetName = $('#report_road_name').val();
                    if(streetName.length<3) return;
                    else geocode(streetName);
                    
          }
}

function numberGeo(){
          if(currentRoad){                    
                    var streetName = $('#report_road_name').val();		
                    if (streetName=='') return;
                    var streetNumber =$('#report_road_number').val();
                    var city="ΑΤΤΙΚΗ";
                    if($('#report_city').val()==0)
                          city="ΘΕΣΣΑΛΟΝΙΚΗΣ"
                    mobGeo.geocodeAddress(moveMarker,city,'',streetName,streetNumber,'');
          }
}

function moveMarker(data){          
        selectedPoints=[];
        for (var i=0; i < data.length; i++) {
	  selectedPoints.push({'id':i,'data':data[i]});	                      
          if((data[i].foundAs==currentRoad.foundAs)&&(data[i].municipality==currentRoad.municipality)){          
                    addAddressMarker(i);                    
          }
       }          
}

function geocode(streetName,opt) {
//    var streetName = $('#report_road_name').val();		
//    if (streetName=='') return;
    var streetNumber =$('#report_road_number').val();
    var city="ΑΤΤΙΚΗ";
    if($('#report_city').val()==0)
          city="ΘΕΣΣΑΛΟΝΙΚΗΣ"
    if(streetName!=''){	
	mobGeo.geocodeAddress(processGeocodeResponse,city,'',streetName,streetNumber,'',opt);
    }
}

function revGeocode(cback,lat,lng){
          mobGeo.reverseGeocode(cback,lat,lng);          
}

function processGeocodeResponse(data,opt) {
        var res = '';
	selectedPoints = [];        
        res +='<table style="height:100%">';
        for (var i=0; i < data.length; i++) {
	  selectedPoints.push({'id':i,'data':data[i]});	              
          if (!data[i].foundAs) {
            res += '<tr><td onclick="slideUpDiv(\'results\')">Δεν βρέθηκαν αποτελέσματα!</td></tr>';
          } else {
	    res += '<tr><td align="left" onmouseover="className=\'td_over\';" onmouseout="className=\'td_out\';"><a style="text-decoration:none" href="javascript:addAddressMarker('+i+')">';            
            res += data[i].foundAs+', '+data[i].municipality;
            res += '</a></td></tr>';
          }          
        }
        res += '</table>';	
	$('#results').html(res);        
	$('#results').slideDown('fast');
	
}

function changeRoadName(data){
    if(data.status == 0){
	if(data.results[0]){
	    $('#report_road_name').val(data.results[0].roadName);
        }
    }     
	$('#report_road_number').val('');
}

function focusOnCity(){
          var city = $('#report_city').val();
          if(city==1)
                    map.setCenter(new GLatLng(37.97945393307615,23.729310035705566), 12);
          else
                    map.setCenter(new GLatLng(40.62991355214697,22.983228225708008), 12);                    
}

jQuery(document).ready(function() {
	  //Initialize google map data
        if (GBrowserIsCompatible()) {        				
          map = new GMap2(document.getElementById("map"));
          map.setUIToDefault();
          map.enableDoubleClickZoom();
		  map.enableScrollWheelZoom();         
          map.setCenter(new GLatLng(37.50752515890449,23.798446655273438), 6);
        }

//if(1<0){
          if(window.location=="http://www.illegalsigns.gov.gr/?page_id=343"){
          svrUrl = 'http://home.ploigos.gr:13245/illegalsigns';
          imageURL = 'http://home.ploigos.gr:13245/illegalsigns/images';
        }
        else{
           svrUrl = 'http://www.illegalsigns.gov.gr:8080/illegalsigns';
           imageURL = 'http://www.illegalsigns.gov.gr:8080/illegalsigns/images';
        }
        
          mobGeo = new MobicsGeo(map,svrUrlMob,imageURL,svrUrl);                 
//        jQuery('#report_road_search').bind('click',function(){geocode();});
                  jQuery('#report_road_name').bind('keyup',function(event){autoGeo(event);});
                  jQuery('#report_road_number').bind('keyup',function(event){numberGeo();});
          jQuery(document).bind('keypress',function(){slideUpDiv('results')});
          jQuery(document).bind('click',function(){slideUpDiv('results')});
 //       jQuery('#report_photo_submit').bind('click',function(){uploadPhoto()});
        jQuery('#report_submit').bind('click',function(){submitReport()});
        
        document.getElementById('file_upload_form').onsubmit=function() {
		document.getElementById('file_upload_form').target = 'upload_target';
                photo_uploaded=1;
                showIFrame();
	}
          
        initIcons();
        showIllegalSigns();        
//        $('#report_photo_submit').removeAttr('disabled');
        GEvent.bind(map, 'move', this, updateIllegalSigns);
        GEvent.bind(map, 'zoomend', this, updateIllegalSigns);
        jQuery(window).bind('resize', updateIllegalSigns);
        is_poly = new GPolygon(p_latlng_array);
        jQuery('#check_illegal').get(0).checked = true;
        jQuery('#check_removed').get(0).checked = true;
        jQuery("#check_illegal").bind('click',function(){showIllegal(this.checked)});
        jQuery("#check_removed").bind('click',function(){showRemoved(this.checked)});
        
});


